commit 058c8f26791b8f0692a6397c23b557a1389928dd Author: Dvurechensky <46356631+Dvurechensky@users.noreply.github.com> Date: Sat Oct 5 09:59:53 2024 +0300 1.0 Main diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c4efe2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,261 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +project.fragment.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +#*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc \ No newline at end of file diff --git a/Git/gitPreview.png b/Git/gitPreview.png new file mode 100644 index 0000000..d80c0f6 Binary files /dev/null and b/Git/gitPreview.png differ diff --git a/LICENCE b/LICENCE new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/LICENCE @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/40_wf_Lesson - Оператор объединения с NULL.csproj b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/40_wf_Lesson - Оператор объединения с NULL.csproj new file mode 100644 index 0000000..e35440f --- /dev/null +++ b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/40_wf_Lesson - Оператор объединения с NULL.csproj @@ -0,0 +1,12 @@ + + + + WinExe + net6.0-windows + Lesson_40_wf + enable + true + enable + + + \ No newline at end of file diff --git a/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Contacts.cs b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Contacts.cs new file mode 100644 index 0000000..ac7a2c4 --- /dev/null +++ b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Contacts.cs @@ -0,0 +1,8 @@ +namespace Lesson_40_wf +{ + public class Contacts + { + public string PhoneNumber { get; set; } + public string Email { get; set; } + } +} diff --git a/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Form1.Designer.cs b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Form1.Designer.cs new file mode 100644 index 0000000..dfb815c --- /dev/null +++ b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Form1.Designer.cs @@ -0,0 +1,71 @@ +namespace Lesson_40_wf +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + button1 = new Button(); + listBox1 = new ListBox(); + SuspendLayout(); + // + // button1 + // + button1.Location = new Point(12, 415); + button1.Name = "button1"; + button1.Size = new Size(136, 23); + button1.TabIndex = 0; + button1.Text = "button1"; + button1.UseVisualStyleBackColor = true; + button1.Click += button1_Click; + // + // listBox1 + // + listBox1.FormattingEnabled = true; + listBox1.ItemHeight = 15; + listBox1.Location = new Point(12, 12); + listBox1.Name = "listBox1"; + listBox1.Size = new Size(776, 394); + listBox1.TabIndex = 1; + // + // Form1 + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(listBox1); + Controls.Add(button1); + Name = "Form1"; + Text = "Form1"; + ResumeLayout(false); + } + + #endregion + + private Button button1; + private ListBox listBox1; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Form1.cs b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Form1.cs new file mode 100644 index 0000000..75d0292 --- /dev/null +++ b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Form1.cs @@ -0,0 +1,35 @@ +using System; +using System.Windows.Forms; + +namespace Lesson_40_wf +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private List GetPerson() + { + return new List() + { + new Person() {FirstName = "1", MiddleName = "2", SecondName = "3"}, + new Person() {FirstName = "11", MiddleName = "22", SecondName = "33"}, + new Person() {FirstName = "111", MiddleName = "222"}, + new Person() {FirstName = "unknown", Contacts = new Contacts() { PhoneNumber = "1234"} } + }; + } + + private void button1_Click(object sender, EventArgs e) + { + listBox1.Items.Clear(); + var persons = GetPerson(); + + foreach (var person in persons) + { + listBox1.Items.Add($"{person.GetFullName()} | {person.GetPhoneNumber()}"); + } + } + } +} \ No newline at end of file diff --git a/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Form1.resx b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Form1.resx new file mode 100644 index 0000000..a395bff --- /dev/null +++ b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Person.cs b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Person.cs new file mode 100644 index 0000000..b31b4f0 --- /dev/null +++ b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Person.cs @@ -0,0 +1,21 @@ +namespace Lesson_40_wf +{ + public class Person + { + public string FirstName { get; set; } + public string MiddleName { get; set; } + public string SecondName { get; set; } + + public Contacts Contacts { get; set; } + + public string GetFullName() + { + return $"Фамилия: {FirstName ?? "нет данных"} | Имя: {MiddleName ?? "нет данных"} | Отчество: {SecondName ?? "нет данных"}"; + } + + public string GetPhoneNumber() + { + return $"Phone Number: {Contacts?.PhoneNumber ?? "нет данных"}"; + } + } +} diff --git a/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Program.cs b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Program.cs new file mode 100644 index 0000000..b2afc2b --- /dev/null +++ b/LessonsAndTasks/40_wf_Lesson - Оператор объединения с NULL/Program.cs @@ -0,0 +1,17 @@ +namespace Lesson_40_wf +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Benchmark/81_81B_84_Benchmark.csproj b/LessonsAndTasks/Benchmark/81_81B_84_Benchmark.csproj new file mode 100644 index 0000000..66b147c --- /dev/null +++ b/LessonsAndTasks/Benchmark/81_81B_84_Benchmark.csproj @@ -0,0 +1,18 @@ + + + + Exe + net5.0 + + + + + + + + + + + + + diff --git a/LessonsAndTasks/Benchmark/MyParserBenchmark.cs b/LessonsAndTasks/Benchmark/MyParserBenchmark.cs new file mode 100644 index 0000000..8c18511 --- /dev/null +++ b/LessonsAndTasks/Benchmark/MyParserBenchmark.cs @@ -0,0 +1,47 @@ +using BenchmarkDotNet.Attributes; + +[MemoryDiagnoser]//по мимо быстродействия тестируем использование памяти +[RankColumn]//добавляет оценку для тестируемых методов (на основании бенчмарка) - чтобы понять какой метод лучше (не обязательно) +public class MyParserBenchmark +{ + private const string STRING_TO_PARSE_WITH_ERROR = "qwerty22"; + private const string STRING_TO_PARSE = "54"; + + private readonly MyParser _myParser = new MyParser(); + + [Benchmark]//метка что именно эти методы мы хотим тестировать + public void TryCathParseTestWithError() + { + int result = _myParser.TryCathParse(STRING_TO_PARSE_WITH_ERROR); + } + + [Benchmark]//метка что именно эти методы мы хотим тестировать + public void TryParseTestWithError() + { + int result = _myParser.TryParse(STRING_TO_PARSE_WITH_ERROR); + } + + [Benchmark]//метка что именно эти методы мы хотим тестировать + public void TryCathParseTest() + { + int result = _myParser.TryCathParse(STRING_TO_PARSE); + } + + [Benchmark]//метка что именно эти методы мы хотим тестировать + public void TryParseTest() + { + int result = _myParser.TryParse(STRING_TO_PARSE); + } + + [Benchmark]//метка что именно эти методы мы хотим тестировать + public void TryParseFixedTestWithError() + { + int result = _myParser.TryParseFixed(STRING_TO_PARSE_WITH_ERROR); + } + + [Benchmark]//метка что именно эти методы мы хотим тестировать + public void TryParseFixedTest() + { + int result = _myParser.TryParseFixed(STRING_TO_PARSE); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Benchmark/Program.cs b/LessonsAndTasks/Benchmark/Program.cs new file mode 100644 index 0000000..657050d --- /dev/null +++ b/LessonsAndTasks/Benchmark/Program.cs @@ -0,0 +1,222 @@ +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Columns; +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Loggers; +using BenchmarkDotNet.Running; +using BenchmarkDotNet.Validators; +using System.Collections; +using System.Collections.Generic; + +[MemoryDiagnoser] +[RankColumn] +public class Benchmark_1 +{ + [Benchmark] + public void StructTest() + { + StructPoint structPoint = new StructPoint() + { + X = 1, + Y = 2 + }; + var result = structPoint.X = structPoint.Y; + } + + [Benchmark] + public void ClassTest() + { + ClassPoint classPoint = new ClassPoint() + { + X = 1, + Y = 2 + }; + var result = classPoint.X = classPoint.Y; + } +} + +[MemoryDiagnoser] +[RankColumn] +public class Benchmark_2 +{ + [Benchmark] + public void StructArrayTest() + { + var structPoints = new StructPoint[100]; + // частично находится в куче + // в массиве через каждый интервал который отвечает + // размеру минимального элемента находятся реальные данные структуры + // разница в быстродействии в том, что мы выделяем память в управляемой куче лишь единожды для массива структур + for (int i = 0; i < structPoints.Length; i++) + { + structPoints[i] = new StructPoint(); + } + } + + [Benchmark] + public void ClassArrayTest() + { + // в начале в куче создается сам массив + // но для каждого объекта класса есть ссылка которую мы помещаем в массив и по каждой ссылке нужно запросить данные из кучи + ClassPoint[] classPoints = new ClassPoint[100]; + // в массиве находятся не реальные данные а ссылки на данные + for (int i = 0; i < classPoints.Length; i++) + { + classPoints[i] = new ClassPoint(); + } + } +} + +[MemoryDiagnoser] +[RankColumn] +public class Benchmark_3 +{ + struct MyStruct + { + public decimal MyProperty1 { get; set; } + public decimal MyProperty2 { get; set; } + public decimal MyProperty3 { get; set; } + public decimal MyProperty4 { get; set; } + public decimal MyProperty5 { get; set; } + public decimal MyProperty6 { get; set; } + public decimal MyProperty7 { get; set; } + public decimal MyProperty8 { get; set; } + public decimal MyProperty9 { get; set; } + public decimal MyProperty10 { get; set; } + } + + class MyClass + { + public decimal MyProperty1 { get; set; } + public decimal MyProperty2 { get; set; } + public decimal MyProperty3 { get; set; } + public decimal MyProperty4 { get; set; } + public decimal MyProperty5 { get; set; } + public decimal MyProperty6 { get; set; } + public decimal MyProperty7 { get; set; } + public decimal MyProperty8 { get; set; } + public decimal MyProperty9 { get; set; } + public decimal MyProperty10 { get; set; } + } + + private MyStruct _myStruct = new MyStruct(); + private MyClass _myClass = new MyClass(); + + private void Foo(MyClass myClass) + { + var t = myClass.MyProperty1 + myClass.MyProperty2; + } + + private void Bar(MyStruct myStruct) + { + var t = myStruct.MyProperty1 + myStruct.MyProperty2; + } + + private void BarIn(in MyStruct myStruct) + { + var t = myStruct.MyProperty1 + myStruct.MyProperty2; + } + + [Benchmark] + public void StructTest() + { + Bar(_myStruct); + } + + [Benchmark] + public void StructTestIn() + { + BarIn(_myStruct); + } + + [Benchmark] + public void ClassTest() + { + Foo(_myClass); + } +} + +[MemoryDiagnoser] +[RankColumn] +public class Benchmark_4 +{ + [Benchmark] + public void NoBoxing() + { + int res = 0; + double a = 1; + res += (int)a; + } + + [Benchmark] + public void Boxing() + { + int res = 0; + object a = 1; + res += (int)a; + } +} + +[MemoryDiagnoser] +[RankColumn] +public class Benchmark_5 +{ + [Benchmark] + public void Swaps() // 4ns + { + object a = 5; + object b = 1; + SwapTestClass.Swap(ref a, ref b); + } + + [Benchmark] + public void GenericSwaps() // 0ns + { + double p1 = 5; + double p2 = 1; + SwapTestClass.GenericSwap(ref p1, ref p2); + } +} + +[MemoryDiagnoser] +[RankColumn] +public class Benchmark_6 +{ + [Benchmark] + public void ArrayListBench() + { + var arrayList = new ArrayList(); + for (int el = 0; el < 1000; el++) + { + arrayList.Add(el); + } + } + + [Benchmark] + public void ListBench() + { + var _list = new List(); + for (int el = 0; el < 1000; el++) + { + _list.Add(el); + } + } +} + +class Program +{ + static void Main(string[] args) + { + //BenchmarkRunner.Run(); + //BenchmarkRunner.Run(); + //BenchmarkRunner.Run(); + //BenchmarkRunner.Run(); + //BenchmarkRunner.Run(); + var config = new ManualConfig() + .WithOptions(ConfigOptions.DisableOptimizationsValidator) + .AddValidator(JitOptimizationsValidator.DontFailOnError) + .AddLogger(ConsoleLogger.Default) + .AddColumnProvider(DefaultColumnProviders.Instance); + + BenchmarkRunner.Run(config); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа.sln b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа.sln new file mode 100644 index 0000000..56ff680 --- /dev/null +++ b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 1 - Первая программа", "Lesson 1 - Первая программа\Lesson 1 - Первая программа.csproj", "{BEC8AD79-F534-495C-B1AD-C63EFDCCA555}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BEC8AD79-F534-495C-B1AD-C63EFDCCA555}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEC8AD79-F534-495C-B1AD-C63EFDCCA555}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEC8AD79-F534-495C-B1AD-C63EFDCCA555}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEC8AD79-F534-495C-B1AD-C63EFDCCA555}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CACE873A-C210-4B83-A3DA-2C506D7FE3BB} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/01_Lesson - Первая программа.csproj b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/01_Lesson - Первая программа.csproj new file mode 100644 index 0000000..1d4b636 --- /dev/null +++ b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/01_Lesson - Первая программа.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {BEC8AD79-F534-495C-B1AD-C63EFDCCA555} + Exe + Lesson_1___Первая_программа + Lesson 1 - Первая программа + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/App.config b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/Program.cs b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/Program.cs new file mode 100644 index 0000000..35ee26c --- /dev/null +++ b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/Program.cs @@ -0,0 +1,15 @@ +using System; + +/* + * Структура проекта + * Структура и порядок выполнения программы + */ +class Program +{ + static void Main() // Точка входа + { + Console.WriteLine("Hello World"); // Ctr + F5 - Запуск без отладки + Console.WriteLine("Привет мир"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6ff1581 --- /dev/null +++ b/LessonsAndTasks/Lesson 1 - Первая программа/Lesson 1 - Первая программа/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 1 - Первая программа")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 1 - Первая программа")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("bec8ad79-f534-495c-b1ad-c63efdcca555")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении.sln b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении.sln new file mode 100644 index 0000000..f531bb6 --- /dev/null +++ b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 10 - Несколько проектов в одном решении", "Lesson 10 - Несколько проектов в одном решении\Lesson 10 - Несколько проектов в одном решении.csproj", "{A7E7EEDE-05D5-4467-B092-5AACE88F5A90}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyProject", "MyProject\MyProject.csproj", "{4D2AA99E-1047-4F82-B26A-7C581217CC99}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A7E7EEDE-05D5-4467-B092-5AACE88F5A90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7E7EEDE-05D5-4467-B092-5AACE88F5A90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7E7EEDE-05D5-4467-B092-5AACE88F5A90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7E7EEDE-05D5-4467-B092-5AACE88F5A90}.Release|Any CPU.Build.0 = Release|Any CPU + {4D2AA99E-1047-4F82-B26A-7C581217CC99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D2AA99E-1047-4F82-B26A-7C581217CC99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D2AA99E-1047-4F82-B26A-7C581217CC99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D2AA99E-1047-4F82-B26A-7C581217CC99}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2247B2F0-9EFD-4C61-BC0F-F73ECE8A9381} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/10_Lesson - Несколько проектов в одном решении.csproj b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/10_Lesson - Несколько проектов в одном решении.csproj new file mode 100644 index 0000000..d9ce629 --- /dev/null +++ b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/10_Lesson - Несколько проектов в одном решении.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {A7E7EEDE-05D5-4467-B092-5AACE88F5A90} + Exe + Lesson_10___Несколько_проектов_в_одном_решении + Lesson 10 - Несколько проектов в одном решении + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/App.config b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/Program.cs b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/Program.cs new file mode 100644 index 0000000..eb123fd --- /dev/null +++ b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/Program.cs @@ -0,0 +1,14 @@ +using System; + +/* + * Несколько проектов в одном решении + * Просто добавляем проект в решение и всё :) + */ +class Program +{ + static void Main() + { + Console.WriteLine("Hello World from Lesson 10"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d017072 --- /dev/null +++ b/LessonsAndTasks/Lesson 10 - Несколько проектов в одном решении/Lesson 10 - Несколько проектов в одном решении/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 10 - Несколько проектов в одном решении")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 10 - Несколько проектов в одном решении")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("a7e7eede-05d5-4467-b092-5aace88f5a90")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/11_Lesson - Инкремент и декремент. Постфиксный и префиксный.csproj b/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/11_Lesson - Инкремент и декремент. Постфиксный и префиксный.csproj new file mode 100644 index 0000000..f74bad0 --- /dev/null +++ b/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/11_Lesson - Инкремент и декремент. Постфиксный и префиксный.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {3D82C6D9-EFBC-4F51-9A40-76D19265D814} + Exe + Lesson_11___Инкремент_и_декремент.Постфиксный_и_префиксный + Lesson_11___Инкремент_и_декремент.Постфиксный_и_префиксный + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/App.config b/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/Program.cs b/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/Program.cs new file mode 100644 index 0000000..81c7124 --- /dev/null +++ b/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/Program.cs @@ -0,0 +1,24 @@ +using System; + +/* + * Инкремент и декремент. Постфиксный и префиксный. + */ +class Program +{ + static void Main() + { + int a = 0; + int b = 1; + + a++; // Постфиксная - Сначала выведется переменная до инкремента а потом после него + --a; // Префиксная - Сначала сработает увеличение переменной а результат выведется в консоль + a--; + a--; + + b = ++b * b; + + Console.WriteLine(a); + Console.WriteLine(b); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4121ace --- /dev/null +++ b/LessonsAndTasks/Lesson 11 - Инкремент и декремент. Постфиксный и префиксный/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 11 - Инкремент и декремент. Постфиксный и префиксный")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 11 - Инкремент и декремент. Постфиксный и префиксный")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("3d82c6d9-efbc-4f51-9a40-76d19265d814")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/12_Lesson - Операторы сравнения. Операции сравнения.csproj b/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/12_Lesson - Операторы сравнения. Операции сравнения.csproj new file mode 100644 index 0000000..bcc875d --- /dev/null +++ b/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/12_Lesson - Операторы сравнения. Операции сравнения.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {C3CDCFE1-7C6D-4122-9C0B-F82FAB30999E} + Exe + Lesson_12___Операторы_сравнения.Операции_сравнения + Lesson_12___Операторы_сравнения.Операции_сравнения + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/App.config b/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/Program.cs b/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/Program.cs new file mode 100644 index 0000000..2f3aa76 --- /dev/null +++ b/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/Program.cs @@ -0,0 +1,35 @@ +using System; + +/* + * Операторы отношений. + * Операции сравнения. + */ + +/* + == Равно + != Не равно + > Больше + < Меньше + >= Больше или равно + <= Меньше или равно +*/ +class Program +{ + static void Main() + { + int a = 5, b = 4; + bool result0 = a == b; + bool result1 = a != b; + bool result2 = a > b; + bool result3 = a < b; + bool result4 = a <= b; + bool result5 = a >= b; + Console.WriteLine(result0 + Environment.NewLine + + result1 + Environment.NewLine + + result2 + Environment.NewLine + + result3 + Environment.NewLine + + result4 + Environment.NewLine + + result5 + Environment.NewLine); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..748aa6d --- /dev/null +++ b/LessonsAndTasks/Lesson 12 - Операторы сравнения. Операции сравнения/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 12 - Операторы сравнения. Операции сравнения")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 12 - Операторы сравнения. Операции сравнения")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("c3cdcfe1-7c6d-4122-9c0b-f82fab30999e")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 13 - Конструкция if else/13_Lesson - Конструкция if else.csproj b/LessonsAndTasks/Lesson 13 - Конструкция if else/13_Lesson - Конструкция if else.csproj new file mode 100644 index 0000000..c23db91 --- /dev/null +++ b/LessonsAndTasks/Lesson 13 - Конструкция if else/13_Lesson - Конструкция if else.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {AB913711-B99C-4D68-B9EF-6D66C437F97A} + Exe + Lesson_13___Конструкция_if_else + Lesson 13 - Конструкция if else + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 13 - Конструкция if else/App.config b/LessonsAndTasks/Lesson 13 - Конструкция if else/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 13 - Конструкция if else/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 13 - Конструкция if else/Program.cs b/LessonsAndTasks/Lesson 13 - Конструкция if else/Program.cs new file mode 100644 index 0000000..416fd48 --- /dev/null +++ b/LessonsAndTasks/Lesson 13 - Конструкция if else/Program.cs @@ -0,0 +1,46 @@ +using System; + +/* + * Конструкция if else + if(утверждение или выражение) + { + действие 1; + } + else + { + действие 2; + } +*/ +class Program +{ + static void Main() + { + bool isInfected = true; + + if (isInfected) // утверждение + { + Console.WriteLine("Персонаж инфицирован!"); + } + else + { + Console.WriteLine("Персонаж не инфицирован!"); + } + + int a; + + int.TryParse(Console.ReadLine(), out a); + + if (a == 5) // выражение + { + Console.WriteLine("a равно 5"); + } + else + { + Console.WriteLine("a не равно 5"); + } + + //#Свой аналог + Console.WriteLine(isInfected ? "Персонаж инфицирован!" : "Персонаж не инфицирован!"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 13 - Конструкция if else/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 13 - Конструкция if else/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8f57762 --- /dev/null +++ b/LessonsAndTasks/Lesson 13 - Конструкция if else/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 13 - Конструкция if else")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 13 - Конструкция if else")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("ab913711-b99c-4d68-b9ef-6d66c437f97a")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/14_Lesson - Сокращённые логические операции. Логические операторы.csproj b/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/14_Lesson - Сокращённые логические операции. Логические операторы.csproj new file mode 100644 index 0000000..0f328cf --- /dev/null +++ b/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/14_Lesson - Сокращённые логические операции. Логические операторы.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {668DAC0A-01C5-4DD0-ACF3-0D4E9485F449} + Exe + Lesson_14___Сокращённые_логические_операции.Логические_операторы + Lesson_14___Сокращённые_логические_операции.Логические_операторы + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/App.config b/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/Program.cs b/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/Program.cs new file mode 100644 index 0000000..7056c43 --- /dev/null +++ b/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/Program.cs @@ -0,0 +1,109 @@ +using System; + +/* Логические операторы + * + * && Сокращённое И + * || Сокращённое ИЛИ + * & И + * | ИЛИ + * ! НЕ(унарный) + */ +class Program +{ + static void Main() + { + bool isInfected = true; + + if (isInfected) + { + Console.WriteLine("[bool] Персонаж инфицирован!"); + } + else + { + Console.WriteLine("[bool] Персонаж здоров!"); + } + + // Оператор "!" + isInfected = false; + if (!isInfected) + { + Console.WriteLine("[!] Персонаж здоров!"); + } + else + { + Console.WriteLine("[!] Персонаж инфицирован!"); + } + + // Не проверяет условия если одно уже равно необходимому значению + // Оператор "&&" + bool isHighTemperature = true; + + bool hasNoColing = true; + + if (isHighTemperature && hasNoColing) + { + Console.WriteLine("[&&] Угроза повреждения процессора!!!"); + } + + // Оператор "||" + isHighTemperature = false; + + hasNoColing = true; + + if (isHighTemperature || hasNoColing) + { + Console.WriteLine("[||] Угроза повреждения процессора!!!"); + } + + // Проверяет всегда оба выражения в условии + // Оператор "&" + isHighTemperature = true; + + hasNoColing = true; + + if (isHighTemperature & hasNoColing) + { + Console.WriteLine("[&] Угроза повреждения процессора!!!"); + } + + // Оператор "|" + isHighTemperature = false; + + hasNoColing = true; + + if (isHighTemperature | hasNoColing) + { + Console.WriteLine("[|] Угроза повреждения процессора!!!"); + } + + // Разница работы операторов в отладчике + // GetCoolingStatus = true, GetTemperatue = true + if (GetTemperatue() | GetCoolingStatus()) + { + Console.WriteLine("[|] Угроза повреждения процессора!!!"); + } + if (GetTemperatue() || GetCoolingStatus()) + { + Console.WriteLine("[|] Угроза повреждения процессора!!!"); + } + if (GetTemperatue() & GetCoolingStatus()) + { + Console.WriteLine("[&] Угроза повреждения процессора!!!"); + } + if (GetTemperatue() && GetCoolingStatus()) + { + Console.WriteLine("[&&] Угроза повреждения процессора!!!"); + } + Console.ReadKey(); + } + + private static bool GetCoolingStatus() + { + return true; + } + + private static bool GetTemperatue() + { + return true; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5abef56 --- /dev/null +++ b/LessonsAndTasks/Lesson 14 - Сокращённые логические операции. Логические операторы/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанные с этой сборкой. +[assembly: AssemblyTitle("Lesson 14 - Сокращённые логические операции. Логические операторы")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 14 - Сокращённые логические операции. Логические операторы")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// из модели COM задайте для атрибута ComVisible этого типа значение true. +[assembly: ComVisible(false)] + +// Следующий GUID представляет идентификатор typelib, если этот проект доступен из модели COM +[assembly: Guid("668dac0a-01c5-4dd0-acf3-0d4e9485f449")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Номер редакции +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/15_Lesson - Условный оператор множественного выбора switch.csproj b/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/15_Lesson - Условный оператор множественного выбора switch.csproj new file mode 100644 index 0000000..68818d6 --- /dev/null +++ b/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/15_Lesson - Условный оператор множественного выбора switch.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {ACE8ABDC-0D05-4963-AFD8-CFF298A85A9C} + Exe + Lesson_15___Условный_оператор_множественного_выбора_switch + Lesson 15 - Условный оператор множественного выбора switch + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/App.config b/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/Program.cs b/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/Program.cs new file mode 100644 index 0000000..43be335 --- /dev/null +++ b/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/Program.cs @@ -0,0 +1,339 @@ +using System; + +/* + * Условный оператор множественного выбора switch(переключатель) + */ +class Program +{ + static void Main() + { + int a = int.Parse(Console.ReadLine()); + switch (a) + { + case 1: + { + Console.WriteLine("Вы ввели число 1"); + Console.WriteLine("Ура"); + } + break; + case 2: + case 3: + Console.WriteLine("Вы ввели число 2 или 3"); + break; + default: + Console.WriteLine("Не знаю"); + break; + } + + string s = Console.ReadLine(); + switch (s) + { + case "+": + Console.WriteLine("Вы ввели плюс"); + break; + case "-": + Console.WriteLine("Вы ввели минус"); + break; + default: + break; + } + + ConsoleKey consoleKey = Console.ReadKey().Key; + + switch (consoleKey) + { + case ConsoleKey.Backspace: + Console.WriteLine("Вы нажали Backspace"); + break; + case ConsoleKey.Tab: + break; + case ConsoleKey.Clear: + break; + case ConsoleKey.Enter: + break; + case ConsoleKey.Pause: + break; + case ConsoleKey.Escape: + break; + case ConsoleKey.Spacebar: + break; + case ConsoleKey.PageUp: + break; + case ConsoleKey.PageDown: + break; + case ConsoleKey.End: + break; + case ConsoleKey.Home: + break; + case ConsoleKey.LeftArrow: + break; + case ConsoleKey.UpArrow: + break; + case ConsoleKey.RightArrow: + break; + case ConsoleKey.DownArrow: + break; + case ConsoleKey.Select: + break; + case ConsoleKey.Print: + break; + case ConsoleKey.Execute: + break; + case ConsoleKey.PrintScreen: + break; + case ConsoleKey.Insert: + break; + case ConsoleKey.Delete: + break; + case ConsoleKey.Help: + break; + case ConsoleKey.D0: + break; + case ConsoleKey.D1: + break; + case ConsoleKey.D2: + break; + case ConsoleKey.D3: + break; + case ConsoleKey.D4: + break; + case ConsoleKey.D5: + break; + case ConsoleKey.D6: + break; + case ConsoleKey.D7: + break; + case ConsoleKey.D8: + break; + case ConsoleKey.D9: + break; + case ConsoleKey.A: + break; + case ConsoleKey.B: + break; + case ConsoleKey.C: + break; + case ConsoleKey.D: + break; + case ConsoleKey.E: + break; + case ConsoleKey.F: + break; + case ConsoleKey.G: + break; + case ConsoleKey.H: + break; + case ConsoleKey.I: + break; + case ConsoleKey.J: + break; + case ConsoleKey.K: + break; + case ConsoleKey.L: + break; + case ConsoleKey.M: + break; + case ConsoleKey.N: + break; + case ConsoleKey.O: + break; + case ConsoleKey.P: + break; + case ConsoleKey.Q: + break; + case ConsoleKey.R: + break; + case ConsoleKey.S: + break; + case ConsoleKey.T: + break; + case ConsoleKey.U: + break; + case ConsoleKey.V: + break; + case ConsoleKey.W: + break; + case ConsoleKey.X: + break; + case ConsoleKey.Y: + break; + case ConsoleKey.Z: + break; + case ConsoleKey.LeftWindows: + break; + case ConsoleKey.RightWindows: + break; + case ConsoleKey.Applications: + break; + case ConsoleKey.Sleep: + break; + case ConsoleKey.NumPad0: + break; + case ConsoleKey.NumPad1: + break; + case ConsoleKey.NumPad2: + break; + case ConsoleKey.NumPad3: + break; + case ConsoleKey.NumPad4: + break; + case ConsoleKey.NumPad5: + break; + case ConsoleKey.NumPad6: + break; + case ConsoleKey.NumPad7: + break; + case ConsoleKey.NumPad8: + break; + case ConsoleKey.NumPad9: + break; + case ConsoleKey.Multiply: + break; + case ConsoleKey.Add: + break; + case ConsoleKey.Separator: + break; + case ConsoleKey.Subtract: + break; + case ConsoleKey.Decimal: + break; + case ConsoleKey.Divide: + break; + case ConsoleKey.F1: + break; + case ConsoleKey.F2: + break; + case ConsoleKey.F3: + break; + case ConsoleKey.F4: + break; + case ConsoleKey.F5: + break; + case ConsoleKey.F6: + break; + case ConsoleKey.F7: + break; + case ConsoleKey.F8: + break; + case ConsoleKey.F9: + break; + case ConsoleKey.F10: + break; + case ConsoleKey.F11: + break; + case ConsoleKey.F12: + break; + case ConsoleKey.F13: + break; + case ConsoleKey.F14: + break; + case ConsoleKey.F15: + break; + case ConsoleKey.F16: + break; + case ConsoleKey.F17: + break; + case ConsoleKey.F18: + break; + case ConsoleKey.F19: + break; + case ConsoleKey.F20: + break; + case ConsoleKey.F21: + break; + case ConsoleKey.F22: + break; + case ConsoleKey.F23: + break; + case ConsoleKey.F24: + break; + case ConsoleKey.BrowserBack: + break; + case ConsoleKey.BrowserForward: + break; + case ConsoleKey.BrowserRefresh: + break; + case ConsoleKey.BrowserStop: + break; + case ConsoleKey.BrowserSearch: + break; + case ConsoleKey.BrowserFavorites: + break; + case ConsoleKey.BrowserHome: + break; + case ConsoleKey.VolumeMute: + break; + case ConsoleKey.VolumeDown: + break; + case ConsoleKey.VolumeUp: + break; + case ConsoleKey.MediaNext: + break; + case ConsoleKey.MediaPrevious: + break; + case ConsoleKey.MediaStop: + break; + case ConsoleKey.MediaPlay: + break; + case ConsoleKey.LaunchMail: + break; + case ConsoleKey.LaunchMediaSelect: + break; + case ConsoleKey.LaunchApp1: + break; + case ConsoleKey.LaunchApp2: + break; + case ConsoleKey.Oem1: + break; + case ConsoleKey.OemPlus: + break; + case ConsoleKey.OemComma: + break; + case ConsoleKey.OemMinus: + break; + case ConsoleKey.OemPeriod: + break; + case ConsoleKey.Oem2: + break; + case ConsoleKey.Oem3: + break; + case ConsoleKey.Oem4: + break; + case ConsoleKey.Oem5: + break; + case ConsoleKey.Oem6: + break; + case ConsoleKey.Oem7: + break; + case ConsoleKey.Oem8: + break; + case ConsoleKey.Oem102: + break; + case ConsoleKey.Process: + break; + case ConsoleKey.Packet: + break; + case ConsoleKey.Attention: + break; + case ConsoleKey.CrSel: + break; + case ConsoleKey.ExSel: + break; + case ConsoleKey.EraseEndOfFile: + break; + case ConsoleKey.Play: + break; + case ConsoleKey.Zoom: + break; + case ConsoleKey.NoName: + break; + case ConsoleKey.Pa1: + break; + case ConsoleKey.OemClear: + break; + default: + break; + } + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7a5bdc6 --- /dev/null +++ b/LessonsAndTasks/Lesson 15 - Условный оператор множественного выбора switch/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанные с этой сборкой. +[assembly: AssemblyTitle("Lesson 15 - Условный оператор множественного выбора switch")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 15 - Условный оператор множественного выбора switch")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// из модели COM задайте для атрибута ComVisible этого типа значение true. +[assembly: ComVisible(false)] + +// Следующий GUID представляет идентификатор typelib, если этот проект доступен из модели COM +[assembly: Guid("ace8abdc-0d05-4963-afd8-cff298a85a9c")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Номер редакции +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 16 - Цикл while/16_Lesson - Цикл while.csproj b/LessonsAndTasks/Lesson 16 - Цикл while/16_Lesson - Цикл while.csproj new file mode 100644 index 0000000..0eb0e27 --- /dev/null +++ b/LessonsAndTasks/Lesson 16 - Цикл while/16_Lesson - Цикл while.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {8FCFD429-4E9C-4B5D-B3C5-CF398BD0F3F2} + Exe + Lesson_16___Цикл_while + Lesson 16 - Цикл while + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 16 - Цикл while/App.config b/LessonsAndTasks/Lesson 16 - Цикл while/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 16 - Цикл while/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 16 - Цикл while/Program.cs b/LessonsAndTasks/Lesson 16 - Цикл while/Program.cs new file mode 100644 index 0000000..a00279f --- /dev/null +++ b/LessonsAndTasks/Lesson 16 - Цикл while/Program.cs @@ -0,0 +1,19 @@ +using System; + +/* + * Цикл while + */ +class Program +{ + static void Main() + { + int count = 0; + int.TryParse(Console.ReadLine(), out int limit); + while (count < limit) + { + count++; + Console.WriteLine($"{count} Выполняем действия"); + } + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 16 - Цикл while/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 16 - Цикл while/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..2c4d708 --- /dev/null +++ b/LessonsAndTasks/Lesson 16 - Цикл while/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 16 - Цикл while")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 16 - Цикл while")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("8fcfd429-4e9c-4b5d-b3c5-cf398bd0f3f2")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 17 - Цикл do while/17_Lesson - Цикл do while.csproj b/LessonsAndTasks/Lesson 17 - Цикл do while/17_Lesson - Цикл do while.csproj new file mode 100644 index 0000000..0604b8f --- /dev/null +++ b/LessonsAndTasks/Lesson 17 - Цикл do while/17_Lesson - Цикл do while.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {60AE567A-7D98-47A8-BBA3-74DC52A32BC8} + Exe + Lesson_17___Цикл_do_while + Lesson 17 - Цикл do while + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 17 - Цикл do while/App.config b/LessonsAndTasks/Lesson 17 - Цикл do while/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 17 - Цикл do while/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 17 - Цикл do while/Program.cs b/LessonsAndTasks/Lesson 17 - Цикл do while/Program.cs new file mode 100644 index 0000000..6c3de24 --- /dev/null +++ b/LessonsAndTasks/Lesson 17 - Цикл do while/Program.cs @@ -0,0 +1,25 @@ +using System; + +/* + * Цикл do while + * Всегда выполняется один раз + * даже если условие цикла не выполянется + */ +class Program +{ + static void Main() + { + int count = 5; + while (count < 5) + { + count++; + Console.WriteLine($"{count} Действие"); + } + do + { + count++; + Console.WriteLine($"{count} Действие"); + } while (count < 5); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 17 - Цикл do while/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 17 - Цикл do while/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7beb665 --- /dev/null +++ b/LessonsAndTasks/Lesson 17 - Цикл do while/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 17 - Цикл do while")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 17 - Цикл do while")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("60ae567a-7d98-47a8-bba3-74dc52a32bc8")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 18 - Цикл for/18_Lesson - Цикл for.csproj b/LessonsAndTasks/Lesson 18 - Цикл for/18_Lesson - Цикл for.csproj new file mode 100644 index 0000000..8df9037 --- /dev/null +++ b/LessonsAndTasks/Lesson 18 - Цикл for/18_Lesson - Цикл for.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {608C0926-91C6-4B0C-B6BF-4AE25688AB70} + Exe + Lesson_18___Цикл_for + Lesson 18 - Цикл for + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 18 - Цикл for/App.config b/LessonsAndTasks/Lesson 18 - Цикл for/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 18 - Цикл for/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 18 - Цикл for/Program.cs b/LessonsAndTasks/Lesson 18 - Цикл for/Program.cs new file mode 100644 index 0000000..41f311e --- /dev/null +++ b/LessonsAndTasks/Lesson 18 - Цикл for/Program.cs @@ -0,0 +1,26 @@ +using System; + +/* + * Цикл for + */ +class Program +{ + private static int count; + + static void Main() + { + //Переменная count в счетчике существует только внутри цикла + for (byte count = 0; count < 10; count++) + { + Console.WriteLine(count); + } + + //Переменная count объявляется вне цикла и существует вне зависимости от положения цикла в коде + while (count < 10) + { + count++; + Console.WriteLine(count); + } + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 18 - Цикл for/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 18 - Цикл for/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ec3efe4 --- /dev/null +++ b/LessonsAndTasks/Lesson 18 - Цикл for/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 18 - Цикл for")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 18 - Цикл for")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("608c0926-91c6-4b0c-b6bf-4ae25688ab70")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/19_Lesson - Цикл for в обратном порядке.csproj b/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/19_Lesson - Цикл for в обратном порядке.csproj new file mode 100644 index 0000000..97d7148 --- /dev/null +++ b/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/19_Lesson - Цикл for в обратном порядке.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {EE26A5F9-9C69-470B-94C4-7F7DE42215B1} + Exe + Lesson_19___Цикл_for_в_обратном_порядке + Lesson 19 - Цикл for в обратном порядке + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/App.config b/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/Program.cs b/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/Program.cs new file mode 100644 index 0000000..ad2b1ff --- /dev/null +++ b/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/Program.cs @@ -0,0 +1,69 @@ +using System; + +/* + * $1 Цикл for особенности + * $2 нескольок переменных + * $3 Цикл for в обратном порядке + * $4 несколько условий + */ +class Program +{ + static void Main() + { + #region $1 + int limit = int.Parse(Console.ReadLine()); + + for (int i = 1; i <= limit; i++) + { + Console.WriteLine(i); + } + + for (; ; ) + { + Console.WriteLine("for is working"); + System.Threading.Thread.Sleep(300); + break; + } + + int t = 0; + for (; t < 3; t++) + { + Console.WriteLine("for_1: " + t); + } + + for (; t < 5; t++) + { + Console.WriteLine("for_2: " + t); + } + + for (int i = 0; i < 5;) + { + i++; + Console.WriteLine(i); + } + #endregion + #region $2 + for (int i = 0, j = 5; i < 10; i++) + { + Console.WriteLine("i: " + i); + Console.WriteLine("j: " + j); + j++; + } + #endregion + #region $3 + for (int i = 10; i > 0; i--) + { + Console.WriteLine("-- " + i); + } + #endregion + #region $4 + for (int i = 0, j = 5; i < 10 && j < 12; i++) + { + Console.WriteLine("i: " + i); + Console.WriteLine("j: " + j); + j++; + } + #endregion + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0b9645f --- /dev/null +++ b/LessonsAndTasks/Lesson 19 - Цикл for в обратном порядке/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 19 - Цикл for в обратном порядке")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 19 - Цикл for в обратном порядке")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("ee26a5f9-9c69-470b-94c4-7f7de42215b1")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных.sln b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных.sln new file mode 100644 index 0000000..c6a6bb6 --- /dev/null +++ b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 2 Типы Данных", "Lesson 2 Типы Данных\Lesson 2 Типы Данных.csproj", "{DEBC4CED-8964-455A-8DEB-6FEADAF2851F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DEBC4CED-8964-455A-8DEB-6FEADAF2851F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DEBC4CED-8964-455A-8DEB-6FEADAF2851F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DEBC4CED-8964-455A-8DEB-6FEADAF2851F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DEBC4CED-8964-455A-8DEB-6FEADAF2851F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1E03A4EA-C95A-4384-9261-E58CC086A255} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/02_Lesson - Типы Данных.csproj b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/02_Lesson - Типы Данных.csproj new file mode 100644 index 0000000..70ccf76 --- /dev/null +++ b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/02_Lesson - Типы Данных.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {DEBC4CED-8964-455A-8DEB-6FEADAF2851F} + Exe + Lesson_2_Типы_Данных + Lesson 2 Типы Данных + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/App.config b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/Program.cs b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/Program.cs new file mode 100644 index 0000000..c22dcda --- /dev/null +++ b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/Program.cs @@ -0,0 +1,58 @@ +using System; + +/* + * Типы данных в C# + */ +class Program +{ + static void Main() + { + string msg = "Тип {0,8} |\t.Net {1,8} |\tРазмер = {2} \t| MIN = {3,30}\t| MAX = {4}"; + + Console.Title = "Типы данных в C#"; + + Console.WriteLine("\n\t\t\t\t\tЧИСЛОВЫЕ (целочисленные) ТИПЫ:\n"); + + Console.WriteLine(string.Format(msg, "byte", typeof(byte).Name, sizeof(byte), byte.MinValue, byte.MaxValue)); + + Console.WriteLine(string.Format(msg, "sbyte", typeof(sbyte).Name, sizeof(sbyte), sbyte.MinValue, sbyte.MaxValue)); + + Console.WriteLine(string.Format(msg, "short", typeof(short).Name, sizeof(short), short.MinValue, short.MaxValue)); + + Console.WriteLine(string.Format(msg, "ushort", typeof(ushort).Name, sizeof(ushort), ushort.MinValue, ushort.MaxValue)); + + Console.WriteLine(string.Format(msg, "int", typeof(int).Name, sizeof(int), int.MinValue, int.MaxValue)); + + Console.WriteLine(string.Format(msg, "uint", typeof(uint).Name, sizeof(uint), uint.MinValue, uint.MaxValue)); + + Console.WriteLine(string.Format(msg, "long", typeof(long).Name, sizeof(long), long.MinValue, long.MaxValue)); + + Console.WriteLine(string.Format(msg, "ulong", typeof(ulong).Name, sizeof(ulong), ulong.MinValue, ulong.MaxValue)); + + Console.WriteLine("\n\t\t\t\t\tЧИСЛОВЫЕ (с плавающей точкой) ТИПЫ:\n"); + + Console.WriteLine(string.Format(msg, "float", typeof(float).Name, sizeof(float), float.MinValue, float.MaxValue)); + + Console.WriteLine(string.Format(msg, "double", typeof(double).Name, sizeof(double), double.MinValue, double.MaxValue)); + + Console.WriteLine(string.Format(msg, "decimal", typeof(decimal).Name, sizeof(decimal), decimal.MinValue, decimal.MaxValue)); + + Console.WriteLine("\n\t\t\t\t\tСИМВОЛЬНЫЕ ТИПЫ:\n"); + + Console.WriteLine(string.Format(msg, "char", typeof(char).Name, sizeof(char), char.MinValue, char.MaxValue)); + + Console.WriteLine(string.Format(msg, "string", typeof(string).Name, "N/A", "N/A", "N/A")); + + Console.WriteLine("\n\t\t\t\t\tЛОГИЧЕСКИЙ ТИП:\n"); + + Console.WriteLine(string.Format(msg, "bool", typeof(bool).Name, sizeof(bool), false, true)); + + Console.WriteLine("\n\t\t\t\t\tОСОБЫЕ ТИПЫ:\n"); + + Console.WriteLine(string.Format(msg, "object", typeof(object).Name, "N/A", "N/A", "N/A")); + + Console.WriteLine(string.Format(msg, "dynamic", "N/A", "N/A", "N/A", "N/A")); + + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..60aa1ea --- /dev/null +++ b/LessonsAndTasks/Lesson 2 - Типы Данных/Lesson 2 Типы Данных/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 2 Типы Данных")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 2 Типы Данных")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("debc4ced-8964-455a-8deb-6feadaf2851f")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/20_Lesson - Ключевое слово break (оператор).csproj b/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/20_Lesson - Ключевое слово break (оператор).csproj new file mode 100644 index 0000000..5692bae --- /dev/null +++ b/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/20_Lesson - Ключевое слово break (оператор).csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {E962F366-B388-4EE4-B276-000F1B4B8052} + Exe + Lesson_20___Ключевое_слово_break__оператор_ + Lesson 20 - Ключевое слово break %28оператор%29 + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/App.config b/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/Program.cs b/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/Program.cs new file mode 100644 index 0000000..d67c9d4 --- /dev/null +++ b/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/Program.cs @@ -0,0 +1,23 @@ +using System; + +/* + * ключевое слово break + */ +class Program +{ + static void Main() + { + for (int i = 0; i < 100; i++) + { + Console.WriteLine(i); + + string msg = Console.ReadLine(); + + if (msg == "exit") + break; + else if (i == 10) + break; + } + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3f3a2cc --- /dev/null +++ b/LessonsAndTasks/Lesson 20 - Ключевое слово break (оператор)/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 20 - Ключевое слово break (оператор)")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 20 - Ключевое слово break (оператор)")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("e962f366-b388-4ee4-b276-000f1b4b8052")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 21 - Ключевое слово continue/21_Lesson - Ключевое слово continue.csproj b/LessonsAndTasks/Lesson 21 - Ключевое слово continue/21_Lesson - Ключевое слово continue.csproj new file mode 100644 index 0000000..c3983ee --- /dev/null +++ b/LessonsAndTasks/Lesson 21 - Ключевое слово continue/21_Lesson - Ключевое слово continue.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {C8EB51D4-B80E-4227-9DC6-6E6D088F24BB} + Exe + Lesson_21___Ключевое_слово_continue + Lesson 21 - Ключевое слово continue + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 21 - Ключевое слово continue/App.config b/LessonsAndTasks/Lesson 21 - Ключевое слово continue/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 21 - Ключевое слово continue/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 21 - Ключевое слово continue/Program.cs b/LessonsAndTasks/Lesson 21 - Ключевое слово continue/Program.cs new file mode 100644 index 0000000..1959532 --- /dev/null +++ b/LessonsAndTasks/Lesson 21 - Ключевое слово continue/Program.cs @@ -0,0 +1,18 @@ +using System; + +/* + * ключевое слово continue + */ +class Program +{ + static void Main() + { + for (int i = 0; i < 100; i++) + { + if (i == 2) + continue; + Console.WriteLine(i); + } + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 21 - Ключевое слово continue/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 21 - Ключевое слово continue/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d2dd749 --- /dev/null +++ b/LessonsAndTasks/Lesson 21 - Ключевое слово continue/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 21 - Ключевое слово continue")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 21 - Ключевое слово continue")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("c8eb51d4-b80e-4227-9dc6-6e6d088f24bb")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/22_Lesson - Вложенные циклы. Как работают.csproj b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/22_Lesson - Вложенные циклы. Как работают.csproj new file mode 100644 index 0000000..febc613 --- /dev/null +++ b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/22_Lesson - Вложенные циклы. Как работают.csproj @@ -0,0 +1,56 @@ + + + + + Debug + AnyCPU + {542E79A5-E2AE-4446-AFF6-17D55EDA286D} + Exe + Lesson_22___Вложенные_циклы.Как_работают + Lesson_22___Вложенные_циклы.Как_работают + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/App.config b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/Game.cs b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/Game.cs new file mode 100644 index 0000000..97355e8 --- /dev/null +++ b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/Game.cs @@ -0,0 +1,4 @@ +public class Game +{ + public string Name { get; set; } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/GameInfo.cs b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/GameInfo.cs new file mode 100644 index 0000000..7cb8334 --- /dev/null +++ b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/GameInfo.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +public class GameInfo +{ + public GameType TypeOfGame { get; set; } + + public List Games { get; set; } +} + +public enum GameType +{ + RPG, + Shooter, + Strategy +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/Program.cs b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/Program.cs new file mode 100644 index 0000000..45a4d2e --- /dev/null +++ b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/Program.cs @@ -0,0 +1,207 @@ +using System; +using System.Collections.Generic; + +/* + * Вложенные циклы + */ +class Program +{ + static void Main() + { + for (int i = 1; i <= 3; i++) + { + Console.WriteLine("цикл 1 итерация № " + i); + for (int h = 1; h <= 5; h++) + { + Console.WriteLine("\t цикл 2 итерация № " + h); + for (int k = 1; k <= 2; k++) + { + Console.WriteLine("\t\t цикл 3 итерация № " + k); + } + } + } + + Console.ReadLine(); + Console.WriteLine("Высота"); + int height = int.Parse(Console.ReadLine()); + Console.WriteLine("Ширина"); + int width = int.Parse(Console.ReadLine()); + + for (int cube = 0; cube < height; cube++) + { + for (int line = 0; line < width; line++) + { + Console.Write("#"); + + } + Console.WriteLine(); + } + + Console.ReadLine(); + + // Example_1 + + int rows = 5; + int columns = 10; + var myArray = GetRandomArray(rows, columns); + + for (int g = 0; g < rows; g++) + { + for (int l = 0; l < columns; l++) + { + Console.Write($"{myArray[g, l]}\t"); + } + + Console.WriteLine(); + } + + Console.ReadLine(); + + /* + * Example_2 + */ + var gamesInfo = GetGamesInfo(); + + for (int u = 0; u < gamesInfo.Count; u++) + { + Console.WriteLine($"{gamesInfo[u].TypeOfGame}:"); + + for (int p = 0; p < gamesInfo[u].Games.Count; p++) + { + Console.WriteLine($" {gamesInfo[u].Games[p].Name}"); + } + + Console.WriteLine(); + } + + Console.ReadLine(); + + /* + * HomeWork + */ + for (int r = 0; r < 10; r++) + { + for (int rr = 0; rr <= r; rr++) + { + Console.Write("#"); + } + + Console.WriteLine(); + + } + + Console.WriteLine(); + Console.WriteLine(); + + for (int r = 10; r > 0; r--) + { + for (int rr = 0; rr < r; rr++) + { + Console.Write("#"); + } + + Console.WriteLine(); + } + + Console.WriteLine(); + Console.WriteLine(); + + for (int r = 10; r > 0; r--) + { + for (int rr = 1; rr < r; rr++) + { + Console.Write(" "); + } + + for (int rrr = 0; rrr < 11 - r; rrr++) + { + Console.Write("#"); + } + + Console.WriteLine(); + } + + Console.WriteLine(); + Console.WriteLine(); + + for (int r = 0; r < 10; r++) + { + for (int rr = 0; rr < r; rr++) + { + Console.Write(" "); + } + + for (int rrr = 0; rrr < 10 - r; rrr++) + { + Console.Write("#"); + } + + Console.WriteLine(); + } + + Console.WriteLine(); + Console.WriteLine(); + + Console.ReadLine(); + } + + /* + * Example_1 + */ + static int[,] GetRandomArray(int rows, int columns) + { + Random random = new Random(); + var result = new int[rows, columns]; + + for (int i = 0; i < rows; i++) + { + for (int j = 0; j < columns; j++) + { + //Генерация случайного числа от 0 до 100 + result[i, j] = random.Next(100); + } + } + + return result; + } + + /* + * Example_2 + */ + static List GetGamesInfo() + { + return new List() + { + new GameInfo + { + TypeOfGame = GameType.RPG, + Games = new List() + { + new Game() { Name = "Fallout 4"}, + new Game() { Name = "Gothic 2"}, + new Game() { Name = "The Elder Scrolls 3: Morrowind"} + } + }, + new GameInfo + { + TypeOfGame = GameType.Shooter, + Games = new List() + { + new Game() { Name = "Counter-Strike: Global Offensive"}, + new Game() { Name = "Battlefield 4"}, + new Game() { Name = "Doom"} + } + }, + new GameInfo + { + TypeOfGame = GameType.Strategy, + Games = new List() + { + new Game() { Name = "Civilization VI"}, + new Game() { Name = "Rome: Total War"}, + new Game() { Name = "Starcraft II"} + } + } + }; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4b12712 --- /dev/null +++ b/LessonsAndTasks/Lesson 22 - Вложенные циклы. Как работают/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 22 - Вложенные циклы. Как работают")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 22 - Вложенные циклы. Как работают")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("542e79a5-e2ae-4446-aff6-17d55eda286d")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/23_Lesson - Тернарный оператор. Что это. Пример.csproj b/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/23_Lesson - Тернарный оператор. Что это. Пример.csproj new file mode 100644 index 0000000..476e3ff --- /dev/null +++ b/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/23_Lesson - Тернарный оператор. Что это. Пример.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {C3596099-8F86-47F2-BA83-EA56E3BC76D0} + Exe + Lesson_23___Тернарный_оператор.Что_это.Пример + Lesson_23___Тернарный_оператор.Что_это.Пример + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/App.config b/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/Program.cs b/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/Program.cs new file mode 100644 index 0000000..798e948 --- /dev/null +++ b/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/Program.cs @@ -0,0 +1,48 @@ +using System; + +/* + * Тернарный оператор. + * [первый операнд - условие]?[второй операнд if_true]:[третий операнд if_false] + */ +class Program +{ + static void Main() + { + int a = 0; + + a++; //Унарная операция + int b = 0; + int c = a + b; //Бинарная операция + + //Тернарная операция + bool accessAllowed; + string storedPassword = "qwerty"; + string enteredPassword = Console.ReadLine(); + + if (enteredPassword == storedPassword) + accessAllowed = true; + else + accessAllowed = false; + + Console.WriteLine(accessAllowed); + + Console.ReadLine(); + + accessAllowed = enteredPassword == storedPassword ? true : false; + + Console.WriteLine(accessAllowed ? "успешно" : "не успешно"); + + Console.ReadLine(); + + accessAllowed = Console.ReadLine() == "qwerty"; + Console.WriteLine(accessAllowed ? "успешно" : "не успешно"); + + Console.ReadLine(); + + int inputData = int.Parse(Console.ReadLine()); + int outputData = inputData < 0 ? 0 : inputData; + Console.WriteLine(outputData); + + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3eeffa5 --- /dev/null +++ b/LessonsAndTasks/Lesson 23 - Тернарный оператор. Что это. Пример/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 23 - Тернарный оператор. Что это. Пример")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 23 - Тернарный оператор. Что это. Пример")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("c3596099-8f86-47f2-ba83-ea56e3bc76d0")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/24_Lesson - Что такое массивы. Одномерный массив. Примеры.csproj b/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/24_Lesson - Что такое массивы. Одномерный массив. Примеры.csproj new file mode 100644 index 0000000..b703dbf --- /dev/null +++ b/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/24_Lesson - Что такое массивы. Одномерный массив. Примеры.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {46607273-7BE4-41A6-90E5-ACFC1479A9AC} + Exe + Lesson_24___Что_такое_массивы.Одномерный_массив.Примеры + Lesson_24___Что_такое_массивы.Одномерный_массив.Примеры + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/App.config b/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/Program.cs b/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/Program.cs new file mode 100644 index 0000000..4aca949 --- /dev/null +++ b/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/Program.cs @@ -0,0 +1,27 @@ +using System; + +/* + * Массивы + * + * Одномерные массивы + * + * Тип_элементов_массива [] имя_массива; + */ +class Program +{ + static void Main() + { + int[] myArray; + + myArray = new int[5]; + + myArray[0] = 10; + myArray[1] = 3; + + int a = myArray[0]; + + Console.WriteLine(a); + + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1000ccf --- /dev/null +++ b/LessonsAndTasks/Lesson 24 - Что такое массивы. Одномерный массив. Примеры/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 24 - Что такое массивы. Одномерный массив. Примеры")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 24 - Что такое массивы. Одномерный массив. Примеры")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("46607273-7be4-41a6-90e5-acfc1479a9ac")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/25_Lesson - Инициализация массива. Способы.csproj b/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/25_Lesson - Инициализация массива. Способы.csproj new file mode 100644 index 0000000..e1d4d43 --- /dev/null +++ b/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/25_Lesson - Инициализация массива. Способы.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {F1F3121A-C3D9-46DB-A69E-CF810CD8A362} + Exe + Lesson_25___Инициализация_массива.Способы + Lesson_25___Инициализация_массива.Способы + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/App.config b/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/Program.cs b/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/Program.cs new file mode 100644 index 0000000..a1af99c --- /dev/null +++ b/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/Program.cs @@ -0,0 +1,24 @@ +using System; +using System.Linq; + +/* + * Массивы + * + * Одномерные массивы + * + * Способы инициализации массива + */ +class Program +{ + static void Main() + { + int[] myArray_1 = new int[5] { 5, 6, 7, 8, 9 }; + int[] myArray_2 = new int[] { 5, 6, 7, 8 }; + int[] myArray_3 = new[] { 5, 6, 7, 8 }; + int[] myArray_4 = { 5, 6, 7, 8 }; + int[] myArray_5 = Enumerable.Repeat(5, 10).ToArray(); + int[] myArray_6 = Enumerable.Range(4, 5).ToArray(); + + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..348ddd8 --- /dev/null +++ b/LessonsAndTasks/Lesson 25 - Инициализация массива. Способы/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 25 - Инициализация массива. Способы")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 25 - Инициализация массива. Способы")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("f1f3121a-c3d9-46db-a69e-cf810cd8a362")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/26_Lesson - Вывод массива. Перебор массива. Массивы и циклы.csproj b/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/26_Lesson - Вывод массива. Перебор массива. Массивы и циклы.csproj new file mode 100644 index 0000000..5d3392e --- /dev/null +++ b/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/26_Lesson - Вывод массива. Перебор массива. Массивы и циклы.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {C0D360CD-3C06-45CC-A0B0-4A5AC0783320} + Exe + Lesson_26___Вывод_массива.Перебор_массива.Массивы_и_циклы + Lesson_26___Вывод_массива.Перебор_массива.Массивы_и_циклы + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/App.config b/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/Program.cs b/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/Program.cs new file mode 100644 index 0000000..17a5086 --- /dev/null +++ b/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/Program.cs @@ -0,0 +1,66 @@ +using System; +using System.Linq; + +/* + * Массивы и циклы + */ +class Program +{ + static void Main() + { + int[] myArray = { 10, 3, 2, 55 }; + + for (int i = 0; i < myArray.Length; i++) + { + Console.WriteLine(myArray[i]); + } + + Console.ReadLine(); + + #region TASK №1 - заполнить массив с клавиатуры + Console.Write("Введите числа массива через пробел: "); + string str = Console.ReadLine(); + int lenght = str.Where(c => c == ' ').Count(); + int[] arrayTask_1 = new int[lenght + 1]; + + int index = 0; + string tmpStr = ""; + for (int i = 0; i < str.Length; i++) + { + tmpStr += str[i]; + if (str[i].ToString().Contains(" ") || i == (str.Length - 1)) + { + arrayTask_1[index] = int.Parse(tmpStr); + index++; + tmpStr = ""; + } + } + Console.ReadLine(); + #endregion + #region TASK №2 - вывести массив в обратном порядке + Console.WriteLine("вывести массив в обратном порядке"); + for (int i = arrayTask_1.Length - 1; i >= 0; i--) + { + Console.Write(arrayTask_1[i] + " "); + } + Console.ReadLine(); + #endregion + #region TASK №3 - найти сумму четных элементов + Console.WriteLine("найти сумму четных элементов"); + int even = 0; + for (int i = 0; i < arrayTask_1.Length; i++) + { + if (arrayTask_1[i] % 2 == 0) + even += arrayTask_1[i]; + } + Console.WriteLine($"Сумма четных равна {even}"); + Console.ReadLine(); + #endregion + #region TASK №4 - найти наименьшее число в массиве + Console.WriteLine("найти наименьшее число в массиве:"); + Console.WriteLine(arrayTask_1.Min()); + #endregion + + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..212ac60 --- /dev/null +++ b/LessonsAndTasks/Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("c0d360cd-3c06-45cc-a0b0-4a5ac0783320")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/27_Lesson - Как работать с массивами на самом деле.csproj b/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/27_Lesson - Как работать с массивами на самом деле.csproj new file mode 100644 index 0000000..178cd5b --- /dev/null +++ b/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/27_Lesson - Как работать с массивами на самом деле.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {027E7BEF-CE49-4672-93CD-9F3F4471B92A} + Exe + Lesson_27___Как_работать_с_массивами_на_самом_деле + Lesson 27 - Как работать с массивами на самом деле + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/App.config b/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/Program.cs b/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/Program.cs new file mode 100644 index 0000000..88e7ee9 --- /dev/null +++ b/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/Program.cs @@ -0,0 +1,26 @@ +using System; +using System.Linq; + +/* + * как работать с массивами на самом деле + */ +class Program +{ + static void Main() + { + int[] myArray = { 111, 10, 4, 99, 49, 64, 99, 4, 42, 5 }; + int value_0 = myArray.Min(); + int[] value_1 = myArray.Where(i => i % 2 != 0).ToArray(); //Перебор по нужному условию + Console.WriteLine(value_1); + int[] result = myArray.Distinct().ToArray(); //Только уникальные + int[] result_1 = myArray.OrderBy(i => i).ToArray(); //Сортировка + Array.Sort(myArray); + Array.Find(myArray, i => i < 70); + Array.FindLast(myArray, i => i < 70); + int[] result_2 = Array.FindAll(myArray, i => i < 70); + int result_3 = Array.FindIndex(myArray, i => i == 70); + Array.Reverse(myArray); + int result_4 = myArray.Where(i => i < 70).FirstOrDefault(); //Первое число меньше 70 + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c8ee8d5 --- /dev/null +++ b/LessonsAndTasks/Lesson 27 - Как работать с массивами на самом деле/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 27 - Как работать с массивами на самом деле")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 27 - Как работать с массивами на самом деле")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("027e7bef-ce49-4672-93cd-9f3f4471b92a")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 28 - Индексы и диапазоны/28_Lesson - Индексы и диапазоны.csproj b/LessonsAndTasks/Lesson 28 - Индексы и диапазоны/28_Lesson - Индексы и диапазоны.csproj new file mode 100644 index 0000000..117f320 --- /dev/null +++ b/LessonsAndTasks/Lesson 28 - Индексы и диапазоны/28_Lesson - Индексы и диапазоны.csproj @@ -0,0 +1,9 @@ + + + + Exe + netcoreapp3.1 + Lesson_28___Индексы_и_диапазоны + + + diff --git a/LessonsAndTasks/Lesson 28 - Индексы и диапазоны/Program.cs b/LessonsAndTasks/Lesson 28 - Индексы и диапазоны/Program.cs new file mode 100644 index 0000000..5990824 --- /dev/null +++ b/LessonsAndTasks/Lesson 28 - Индексы и диапазоны/Program.cs @@ -0,0 +1,46 @@ +using System; + +/* + * индексы и диапазоны + */ +class Program +{ + static void Main() + { + int[] myArray = { 2, 10, 5, 5, 1, 1, 2, 3 }; + Console.WriteLine(myArray[^1]); // Поддерживает >= .Net Core 3.0 - выводит первый элемент с конца + + int[] myIntArray = myArray[1..4]; // Поддерживает >= .Net Core 3.0 - извлекает диапазон элементов + + Index index = ^2; + int res = myArray[index]; + Console.WriteLine(index.Value); // Порядковый номер выводимого элемента + Console.WriteLine(index.IsFromEnd); // C начала или с конца использовать индекс + + Index construct = new Index(3, true); + Console.WriteLine(construct); + Range range = new Range(2, 5); + Console.WriteLine(range); + Console.WriteLine(myArray[new Range(1, 2)]); + int[] myCR = myArray[^3..^1]; + Console.WriteLine(myCR[^1]); + string str = "Hello"; + Console.WriteLine(str[1..3]); + Console.WriteLine(myArray[^2]); // извлечение второго элемента с конца + Console.WriteLine(); + + //примеры извлечений диапазонов элементов из массива с выводом в консоль + foreach (var item in myArray[..4]) + Console.WriteLine($"{item} "); + Console.WriteLine("\n"); + + foreach (var item in myArray[4..]) + Console.WriteLine($"{item} "); + Console.WriteLine("\n"); + + foreach (var item in myArray[5..7]) + Console.WriteLine($"{item} "); + Console.WriteLine("\n"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/29_Lesson - Многомерные массивы. Двумерный прямоугольный массив.csproj b/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/29_Lesson - Многомерные массивы. Двумерный прямоугольный массив.csproj new file mode 100644 index 0000000..09218b4 --- /dev/null +++ b/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/29_Lesson - Многомерные массивы. Двумерный прямоугольный массив.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {E85F79E9-98D3-4451-9CF9-163631DBB6AF} + Exe + Lesson_29___Многомерные_массивы.Двумерный_прямоугольный_массив + Lesson_29___Многомерные_массивы.Двумерный_прямоугольный_массив + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/App.config b/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/Program.cs b/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/Program.cs new file mode 100644 index 0000000..ea19c75 --- /dev/null +++ b/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/Program.cs @@ -0,0 +1,21 @@ +/* + * многомерные массивы + * + * двумерный прямоугольный массив + */ +class Program +{ + static void Main() + { + //Некая коллекция данных + /* + * y/x 0 1 2 + * 0 1 1 1 + * 1 1 1 1 + * 2 1 1 1 + * + * index y;x + * index 1;1 + */ + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..57892be --- /dev/null +++ b/LessonsAndTasks/Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("e85f79e9-98d3-4451-9cf9-163631dbb6af")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке.sln b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке.sln new file mode 100644 index 0000000..d22f595 --- /dev/null +++ b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 3 - Переменные в языке", "Lesson 3 - Переменные в языке\Lesson 3 - Переменные в языке.csproj", "{188BE1DF-C5E2-432A-A34B-B5B84F878235}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {188BE1DF-C5E2-432A-A34B-B5B84F878235}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {188BE1DF-C5E2-432A-A34B-B5B84F878235}.Debug|Any CPU.Build.0 = Debug|Any CPU + {188BE1DF-C5E2-432A-A34B-B5B84F878235}.Release|Any CPU.ActiveCfg = Release|Any CPU + {188BE1DF-C5E2-432A-A34B-B5B84F878235}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3C73ED95-AA89-4034-A0AD-F1D3882885FC} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/03_Lesson - Переменные в языке.csproj b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/03_Lesson - Переменные в языке.csproj new file mode 100644 index 0000000..72e3b38 --- /dev/null +++ b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/03_Lesson - Переменные в языке.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {188BE1DF-C5E2-432A-A34B-B5B84F878235} + Exe + Lesson_3___Переменные_в_языке + Lesson 3 - Переменные в языке + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/App.config b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/Program.cs b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/Program.cs new file mode 100644 index 0000000..d4eaf03 --- /dev/null +++ b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/Program.cs @@ -0,0 +1,50 @@ +using System; + +/* + * Переменные в C# + * + * Объявление (создание) переменных + * + * Инициализация переменных + * + * Присвоение значения переменной (помещение данных) + */ +class Program +{ + static void Main() + { + int a = 5, b = 9; // Тип_данных имя_переменной; + + Console.WriteLine(a); + + a = 747; // Помещение значения + + Console.WriteLine(a); + Console.WriteLine(b); + + Console.WriteLine("\t"); + + bool variable1 = false; // Объявление переменной + bool Variable1 = false; + bool variable2 = true; + + Console.WriteLine(variable1); + Console.WriteLine(variable2); + Console.WriteLine(Variable1); + + Console.WriteLine("\t"); + + double t = 1.33; + + Console.WriteLine(t); + + char c = '#'; + string cc = "dfdfdsf"; + + Console.WriteLine(c); + Console.WriteLine(cc); + + Console.WriteLine("\t"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..2d2b663 --- /dev/null +++ b/LessonsAndTasks/Lesson 3 - Переменные в языке/Lesson 3 - Переменные в языке/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 3 - Переменные в языке")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 3 - Переменные в языке")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("188be1df-c5e2-432a-a34b-b5b84f878235")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/30_Lesson - Двумерный массив. Объявление. Инициализация. Индексы.csproj b/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/30_Lesson - Двумерный массив. Объявление. Инициализация. Индексы.csproj new file mode 100644 index 0000000..ad5fcdb --- /dev/null +++ b/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/30_Lesson - Двумерный массив. Объявление. Инициализация. Индексы.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {31F0D7A5-6BDF-49BD-B2A7-3BB7879213BB} + Exe + Lesson_30___Двумерный_массив.Объявление.Инициализация.Индексы + Lesson_30___Двумерный_массив.Объявление.Инициализация.Индексы + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/App.config b/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/Program.cs b/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/Program.cs new file mode 100644 index 0000000..a288e24 --- /dev/null +++ b/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/Program.cs @@ -0,0 +1,29 @@ +using System; + +/* + * двумерный массив + * + * инициализация + * + * обращение к элементам двумерного массива + */ +class Program +{ + static void Main() + { + //тип_данных [,] имя_массива; + + int[,] myArray = new int[3, 5]; + int[,] myArray_1 = + { + { 34, 44, 55, 22, 33 }, + { 34, 44, 55, 22, 33 }, + { 34, 44, 55, 22, 33 } + }; + + myArray[0, 2] = 90; + + Console.WriteLine(myArray[0, 2]); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..06d9050 --- /dev/null +++ b/LessonsAndTasks/Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("31f0d7a5-6bdf-49bd-b2a7-3bb7879213bb")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/31_Lesson - Вывод двумерного массива.csproj b/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/31_Lesson - Вывод двумерного массива.csproj new file mode 100644 index 0000000..fc7cd0c --- /dev/null +++ b/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/31_Lesson - Вывод двумерного массива.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {8A4C8531-FC1F-4BE9-9625-B359984F0CEB} + Exe + Lesson_31___Вывод_двумерного_массива + Lesson 31 - Вывод двумерного массива + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/App.config b/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/Program.cs b/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/Program.cs new file mode 100644 index 0000000..9621015 --- /dev/null +++ b/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/Program.cs @@ -0,0 +1,47 @@ +using System; + +/* + * Вывод двумерного массива + */ +class Program +{ + static void Main() + { + int[,] myArray = new int[,] + { + {1, 2, 3, 4 }, + {5, 6, 7, 8 }, + {9, 10, 11, 12 }, + {13, 14, 15, 16 } + }; + + foreach (var item in myArray) + { + Console.WriteLine(item); + } + Console.WriteLine(); + + //Число измерений массива - одномерный, двумерный и тд. + Console.WriteLine(myArray.Rank); + Console.WriteLine(); + + //Суммарно число элементов в массиве. + Console.WriteLine(myArray.Length); + Console.WriteLine(); + + //Количество элементов в конкретном измерении (измеряется с 0(1)) + Console.WriteLine(myArray.GetLength(1)); + Console.WriteLine(); + + for (int y = 0; y < myArray.GetLength(0); y++) + { + for (int x = 0; x < myArray.GetLength(1); x++) + { + Console.Write(myArray[y, x] + "\t"); + } + Console.WriteLine(); + } + Console.WriteLine(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ce62152 --- /dev/null +++ b/LessonsAndTasks/Lesson 31 - Вывод двумерного массива/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 31 - Вывод двумерного массива")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 31 - Вывод двумерного массива")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("8a4c8531-fc1f-4be9-9625-b359984f0ceb")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/32_Lesson - Заполнение двумерного масива, случайными числами.csproj b/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/32_Lesson - Заполнение двумерного масива, случайными числами.csproj new file mode 100644 index 0000000..781e6d2 --- /dev/null +++ b/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/32_Lesson - Заполнение двумерного масива, случайными числами.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {78D5B5FF-0681-49E1-9752-B4AB395A47AB} + Exe + Lesson_32___Заполнение_двумерного_масива__случайными_числами + Lesson 32 - Заполнение двумерного масива, случайными числами + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/App.config b/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/Program.cs b/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/Program.cs new file mode 100644 index 0000000..50d3412 --- /dev/null +++ b/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/Program.cs @@ -0,0 +1,72 @@ +using System; + +/* + * Заполнение двумерного массива случайными числами + * + * Заполнение двумерного масива с клавиатуры + */ +class Program +{ + static void Main() + { + int[,] myArray = new int[2, 2]; + string[,] myArray1 = new string[2, 2]; + + Random rnd = new Random(); + + #region Random + for (int y = 0; y < myArray.GetLength(0); y++) + { + for (int x = 0; x < myArray.GetLength(1); x++) + { + myArray[y, x] = rnd.Next(0, 1000); + } + } + #endregion + + #region Int + for (int y = 0; y < myArray.GetLength(0); y++) + { + for (int x = 0; x < myArray.GetLength(1); x++) + { + Console.Write($"Введите значение в элемент массива [myArray] под индексом [{0}][{1}]: ", y, x); + myArray[y, x] = int.Parse(Console.ReadLine()); + Console.WriteLine(); + } + Console.WriteLine(); + } + + for (int y = 0; y < myArray.GetLength(0); y++) + { + for (int x = 0; x < myArray.GetLength(1); x++) + { + Console.Write(myArray[y, x] + "\t"); + } + Console.WriteLine(); + } + #endregion + + #region String + for (int y = 0; y < myArray1.GetLength(0); y++) + { + for (int x = 0; x < myArray1.GetLength(1); x++) + { + Console.Write($"Введите значение в элемент массива [myArray1] под индексом [{0}][{1}]: ", y, x); + myArray1[y, x] = Console.ReadLine(); + Console.WriteLine(); + } + Console.WriteLine(); + } + + for (int y = 0; y < myArray1.GetLength(0); y++) + { + for (int x = 0; x < myArray1.GetLength(1); x++) + { + Console.Write(myArray1[y, x] + "\t"); + } + Console.WriteLine(); + } + #endregion + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3836d50 --- /dev/null +++ b/LessonsAndTasks/Lesson 32 - Заполнение двумерного масива, случайными числами/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 32 - Заполнение двумерного масива, случайными числами")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 32 - Заполнение двумерного масива, случайными числами")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("78d5b5ff-0681-49e1-9752-b4ab395a47ab")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/33_Lesson - Ступенчатые (зубчатые) массивы.csproj b/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/33_Lesson - Ступенчатые (зубчатые) массивы.csproj new file mode 100644 index 0000000..e1714b0 --- /dev/null +++ b/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/33_Lesson - Ступенчатые (зубчатые) массивы.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {9AA9A703-8243-4EAE-B022-EE2FF4027A85} + Exe + Lesson_33___Ступенчатые__зубчатые__массивы + Lesson 33 - Ступенчатые %28зубчатые%29 массивы + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/App.config b/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/Program.cs b/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/Program.cs new file mode 100644 index 0000000..7839900 --- /dev/null +++ b/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/Program.cs @@ -0,0 +1,43 @@ +using System; + +/* + * Cтупенчатые (зубчатые) массивы + */ +class Program +{ + static void Main() + { + int[][] test1 = new int[3][]; + int[,] test2 = new int[3, 6]; + + int tes1Rank = test1.Rank; + int test2Rank = test2.Rank; + + int tes1Lenght = test1.Length; + int test2Lenght = test2.Length; + + test1[0] = new int[5]; + test1[1] = new int[8]; + test1[2] = new int[2]; + test1[0][2] = 6; + Console.WriteLine(test1[0][2]); + Random rnd = new Random(); + for (int i = 0; i < test1.Length; i++) + { + for (int k = 0; k < test1[i].Length; k++) + { + test1[i][k] = rnd.Next(100); + } + } + + for (int i = 0; i < test1.Length; i++) + { + for (int k = 0; k < test1[i].Length; k++) + { + Console.Write(test1[i][k] + "\t"); + } + Console.WriteLine(); + } + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7325aa7 --- /dev/null +++ b/LessonsAndTasks/Lesson 33 - Ступенчатые (зубчатые) массивы/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 33 - Ступенчатые (зубчатые) массивы")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 33 - Ступенчатые (зубчатые) массивы")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("9aa9a703-8243-4eae-b022-ee2ff4027a85")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/34_Lesson - Трехмерные массивы, многомерные массивы любой мерности.csproj b/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/34_Lesson - Трехмерные массивы, многомерные массивы любой мерности.csproj new file mode 100644 index 0000000..1fade9c --- /dev/null +++ b/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/34_Lesson - Трехмерные массивы, многомерные массивы любой мерности.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {AA3C2474-5FFC-45B8-8C23-CCE0E2DBD851} + Exe + Lesson_34___Трехмерные_массивы__многомерные_массивы_любой_мерности + Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/App.config b/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/Program.cs b/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/Program.cs new file mode 100644 index 0000000..02c0207 --- /dev/null +++ b/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/Program.cs @@ -0,0 +1,116 @@ +using System; + +/* + * Трехмерные и более массивы + */ +class Program +{ + static void Main() + { + int[,,,] myArray = new int[3, 5, 4, 7]; + int[,,] myArray_1 = new int[3, 5, 7]; + Random rnd = new Random(); + myArray_1[0, 1, 1] = 60; + + Console.WriteLine(myArray_1[0, 1, 1]); + + int[,,] myArray_2 = + { + { + {1, 2 }, + {2, 3 } + }, + { + {1, 2 }, + {2, 3 } + }, + { + {1, 2 }, + {2, 3 } + } + }; + + Console.ReadLine(); + + for (int i = 0; i < myArray.GetLength(0); i++) + { + for (int j = 0; j < myArray.GetLength(1); j++) + { + for (int o = 0; o < myArray.GetLength(2); o++) + { + for (int k = 0; k < myArray.GetLength(3); k++) + { + myArray[i, j, o, k] = rnd.Next(100); + } + } + } + } + + for (int i = 0; i < myArray.GetLength(0); i++) + { + Console.WriteLine($"Book №{i + 1}\n"); + for (int j = 0; j < myArray.GetLength(1); j++) + { + Console.WriteLine($"\t Page №{j + 1}\n"); + + for (int o = 0; o < myArray.GetLength(2); o++) + { + Console.WriteLine($"\t\t List №{o + 1}\n"); + + for (int k = 0; k < myArray.GetLength(3); k++) + { + Console.Write(myArray[i, j, o, k] + "\t"); + } + Console.WriteLine("\n"); + } + Console.WriteLine(); + } + Console.WriteLine("##################################"); + } + + Console.ReadLine(); + + int[][][][] arrayZub = new int[rnd.Next(3, 6)][][][]; + + for (int i = 0; i < arrayZub.Length; i++) + { + arrayZub[i] = new int[rnd.Next(4, 9)][][]; + for (int j = 0; j < arrayZub[i].Length; j++) + { + arrayZub[i][j] = new int[rnd.Next(2, 5)][]; + + for (int o = 0; o < arrayZub[i][j].Length; o++) + { + arrayZub[i][j][o] = new int[rnd.Next(2, 5)]; + for (int l = 0; l < arrayZub[i][j][o].Length; l++) + { + arrayZub[i][j][o][l] = rnd.Next(100); + } + } + } + } + + for (int i = 0; i < arrayZub.Length; i++) + { + Console.WriteLine($"Book №{i + 1}\n"); + for (int j = 0; j < arrayZub[i].Length; j++) + { + Console.WriteLine($"\t Page №{j + 1}\n"); + + for (int o = 0; o < arrayZub[i][j].Length; o++) + { + Console.WriteLine($"\t\t List №{o + 1}\n"); + + for (int k = 0; k < arrayZub[i][j][o].Length; k++) + { + Console.Write(arrayZub[i][j][o][k] + "\t"); + } + Console.WriteLine("\n"); + } + Console.WriteLine(); + } + Console.WriteLine("************************************"); + } + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..541f40d --- /dev/null +++ b/LessonsAndTasks/Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("aa3c2474-5ffc-45b8-8c23-cce0e2dbd851")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/35_Lesson - Функции и методы, что это, примеры.csproj b/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/35_Lesson - Функции и методы, что это, примеры.csproj new file mode 100644 index 0000000..2b7acbb --- /dev/null +++ b/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/35_Lesson - Функции и методы, что это, примеры.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {D456B58D-3801-4B76-BE69-82A4FDB5A993} + Exe + Lesson_35___Функции_и_методы__что_это__примеры + Lesson 35 - Функции и методы, что это, примеры + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/App.config b/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/Program.cs b/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/Program.cs new file mode 100644 index 0000000..56df0d9 --- /dev/null +++ b/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/Program.cs @@ -0,0 +1,84 @@ +using System; + +/* + * Функции и методы, что это, примеры + * + * модификаторы тип_возвращаемого значения название_метода (параметры) + * { + * тело метода + * } + */ +class Program +{ + static void Main() + { + int a, b, c; + Console.Write("Введите число №1: "); + a = int.Parse(Console.ReadLine()); + Console.Write("Введите число №2: "); + b = int.Parse(Console.ReadLine()); + + c = a + b; + + Console.WriteLine(c); + + Console.WriteLine(Sum(a, b)); + + Console.ReadLine(); + + PrintLine(c); + + //Дз №1 (диапазон символов) + // Написать метод который выводит на экран строку + // Символы из которых состоит строка и их количество вводятся пользователем + PrintStr(10, new char[2] { 'Q', 'Z' }); + //Дз №2 + // Написать метод для поиска индекса элемента массива (тип элементов в массиве -int) + // Метод должен вернуть индекс первого найденного элемента (если он будет найден) + int[] test_Array = new int[10] { 2, 4, 5, 6, 45, 5, 6, 3, 4222, 6 }; + Console.WriteLine($"Индекс элемента {4222} массива test_Array: " + CheckIndexArray(4222, test_Array)); + Console.ReadKey(); + } + + public static int Sum(int value_1, int value_2) + { + return value_1 + value_2; + } + + public static void PrintLine(int value) + { + Console.WriteLine("printLine: " + value); + } + + public static void PrintStr(uint length, char[] symbol) + { + Random rnd = new Random(); + string result = ""; + + int index = 0; + while (index <= length) + { + index++; + char symRes = (char)rnd.Next(symbol[0], symbol[1]); + result += symRes; + } + + Console.WriteLine("String: " + result); + } + + public static int CheckIndexArray(int value, int[] array) + { + if (array.Length != 0) + { + int index_Array = 0; + foreach (var el_array in array) + { + index_Array++; + if (el_array == value) + return index_Array - 1; + } + } + + return -1; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..affcdb3 --- /dev/null +++ b/LessonsAndTasks/Lesson 35 - Функции и методы, что это, примеры/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 35 - Функции и методы, что это, примеры")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 35 - Функции и методы, что это, примеры")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("d456b58d-3801-4b76-be69-82a4fdb5a993")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 36 - Перегрузка методов/36_Lesson - Перегрузка методов.csproj b/LessonsAndTasks/Lesson 36 - Перегрузка методов/36_Lesson - Перегрузка методов.csproj new file mode 100644 index 0000000..9231317 --- /dev/null +++ b/LessonsAndTasks/Lesson 36 - Перегрузка методов/36_Lesson - Перегрузка методов.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {F34542A8-0AAA-46C7-98DE-0DF72E9A7E2F} + Exe + Lesson_36____Перегрузка_методов + Lesson 36 - Перегрузка методов + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 36 - Перегрузка методов/App.config b/LessonsAndTasks/Lesson 36 - Перегрузка методов/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 36 - Перегрузка методов/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 36 - Перегрузка методов/Program.cs b/LessonsAndTasks/Lesson 36 - Перегрузка методов/Program.cs new file mode 100644 index 0000000..c56c949 --- /dev/null +++ b/LessonsAndTasks/Lesson 36 - Перегрузка методов/Program.cs @@ -0,0 +1,36 @@ +using System; + +/* + * Перегрузка методов (несколько реализаций одного и того же метода с разной сигнатурой) + */ +class Program +{ + public static int Sum(int a, int b) + { + return a + b; + } + + public static int Sum(int a, int b, int c) + { + return a + b + c; + } + + /// + /// Сумма чисел разных типов + /// + /// Число 1 + /// Число 2(double) + /// Число 3 + /// Сумма + public static double Sum(int a, double b, int c) + { + return (double)a + b + c; + } + + static void Main() + { + double sum = Sum(1, 2.3, 4); + Console.WriteLine(sum); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 36 - Перегрузка методов/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 36 - Перегрузка методов/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4ecec27 --- /dev/null +++ b/LessonsAndTasks/Lesson 36 - Перегрузка методов/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 36 - Перегрузка методов")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 36 - Перегрузка методов")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("f34542a8-0aaa-46c7-98de-0df72e9a7e2f")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/37_Lesson - Область видимости, контекст переменной, конфликт областей.csproj b/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/37_Lesson - Область видимости, контекст переменной, конфликт областей.csproj new file mode 100644 index 0000000..e21c8a0 --- /dev/null +++ b/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/37_Lesson - Область видимости, контекст переменной, конфликт областей.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {149CE343-79C3-4AE2-B61E-51845872C151} + Exe + Lesson_37____Область_видимости__контекст_переменной__конфликт_областей + Lesson 37 - Область видимости, контекст переменной, конфликт областей + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/App.config b/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/Program.cs b/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/Program.cs new file mode 100644 index 0000000..d072bed --- /dev/null +++ b/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/Program.cs @@ -0,0 +1,30 @@ +using System; + +/* + * Область видимости, или контекст переменной + * Конфликты областей видимости + */ +class Program +{ + static int a = 3; + static int aa = 3; + + static void Foo() + { + int b = 0; + + int aa = 2; + Console.WriteLine(aa); + } + + static void Main() + { + for (int i = 0; i < 2; i++) + { + ++i; + } + Foo(); + a++; // Область видимости и конктекст переменной - это одно и то же + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..53cea4a --- /dev/null +++ b/LessonsAndTasks/Lesson 37 - Область видимости, контекст переменной, конфликт областей/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 37 - Область видимости, контекст переменной, конфликт областей")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 37 - Область видимости, контекст переменной, конфликт областей")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("149ce343-79c3-4ae2-b61e-51845872c151")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/38_Lesson - Ссылочные и значимые типы, стек и куча.csproj b/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/38_Lesson - Ссылочные и значимые типы, стек и куча.csproj new file mode 100644 index 0000000..86a5a9d --- /dev/null +++ b/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/38_Lesson - Ссылочные и значимые типы, стек и куча.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {AA330FB4-E2E1-4570-9ECD-65F8100E90D5} + Exe + Lesson_38____Ссылочные_и_значимые_типы__стек_и_куча + Lesson 38 - Ссылочные и значимые типы, стек и куча + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/App.config b/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/Program.cs b/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/Program.cs new file mode 100644 index 0000000..9f80f64 --- /dev/null +++ b/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/Program.cs @@ -0,0 +1,56 @@ +using System; + +/* + * Ссылочные (reference type) и значимые (value types) типы + * + * Стек (stack) и куча (heap) + */ +class Program +{ + /// + /// Данные удаляются из стека после выполненения + /// + /// val + static void Foo(int a) + { + a = 5; + } + + static void Bar(int[] a) + { + a[0] = 3; + } + + + /// + /// Stack - Enum, Struct + /// Heap - Class + /// + static void Main() + { + { + int y = 2; + } + + //Stack + int a = 4; + System.Int32 g = 5; + + //Heap + Random rnd = new Random(); + + //Heap gg(data) - реальные данные теущего массива Stack gg(ref) - ссылка + Array array; + int[] gg; + + //Stack + ConsoleKey consoleKey; + + Foo(a); + + int[] ba = new int[1]; + ba[1] = 2; + Bar(ba); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..dc19051 --- /dev/null +++ b/LessonsAndTasks/Lesson 38 - Ссылочные и значимые типы, стек и куча/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 38 - Ссылочные и значимые типы, стек и куча")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 38 - Ссылочные и значимые типы, стек и куча")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("aa330fb4-e2e1-4570-9ecd-65f8100e90d5")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 39 - Что такое NULL/39_Lesson - Что такое NULL.csproj b/LessonsAndTasks/Lesson 39 - Что такое NULL/39_Lesson - Что такое NULL.csproj new file mode 100644 index 0000000..b9ab8ac --- /dev/null +++ b/LessonsAndTasks/Lesson 39 - Что такое NULL/39_Lesson - Что такое NULL.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {5BE6607E-0B8C-441E-B80E-14236D377D08} + Exe + Lesson_39___Что_такое_NULL + Lesson 39 - Что такое NULL + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 39 - Что такое NULL/App.config b/LessonsAndTasks/Lesson 39 - Что такое NULL/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 39 - Что такое NULL/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 39 - Что такое NULL/Program.cs b/LessonsAndTasks/Lesson 39 - Что такое NULL/Program.cs new file mode 100644 index 0000000..7a67985 --- /dev/null +++ b/LessonsAndTasks/Lesson 39 - Что такое NULL/Program.cs @@ -0,0 +1,39 @@ +using System; + +/* + * Что такое NULL + */ +class MyClass +{ + +} + +struct MyStruct +{ + +} + +class Program +{ + static void Heap() + { + int[] a = new int[10]; + } + + static void Main() + { + bool b; + int a; + double d; + + //У классов - NULL + Random random; + int[] arr; + MyClass myClass; + + MyStruct myStruct; + + Heap(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 39 - Что такое NULL/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 39 - Что такое NULL/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5ba5392 --- /dev/null +++ b/LessonsAndTasks/Lesson 39 - Что такое NULL/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 39 - Что такое NULL")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 39 - Что такое NULL")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("5be6607e-0b8c-441e-b80e-14236d377d08")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль.sln b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль.sln new file mode 100644 index 0000000..63dad86 --- /dev/null +++ b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 4 - Ввод данных в консоль", "Lesson 4 - Ввод данных в консоль\Lesson 4 - Ввод данных в консоль.csproj", "{B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2C4A730F-9925-4F76-A407-51D78323790E} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/04_Lesson - Ввод данных в консоль.csproj b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/04_Lesson - Ввод данных в консоль.csproj new file mode 100644 index 0000000..83c64c1 --- /dev/null +++ b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/04_Lesson - Ввод данных в консоль.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4} + Exe + Lesson_4___Ввод_данных_в_консоль + Lesson 4 - Ввод данных в консоль + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/App.config b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/Program.cs b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/Program.cs new file mode 100644 index 0000000..443c659 --- /dev/null +++ b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/Program.cs @@ -0,0 +1,15 @@ +using System; + +/* + * Ввод данных в консоль + */ +class Program +{ + static void Main() + { + string data; // Объявление переменной + data = Console.ReadLine(); // Чтение значения с консоли + Console.WriteLine("Привет " + data + "!!!"); // Конкатенация + Console.ReadKey(); // Просмотр содержимого + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1848123 --- /dev/null +++ b/LessonsAndTasks/Lesson 4 - Ввод данных в консоль/Lesson 4 - Ввод данных в консоль/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 4 - Ввод данных в консоль")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 4 - Ввод данных в консоль")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("b1dc4f5a-1a96-4068-b1fa-2e78286ae2c4")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/40_Lesson - Оператор объединения с NULL.csproj b/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/40_Lesson - Оператор объединения с NULL.csproj new file mode 100644 index 0000000..0e0e536 --- /dev/null +++ b/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/40_Lesson - Оператор объединения с NULL.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {D4526E9D-E808-4922-8841-96A03BB14650} + Exe + Lesson_40___Оператор_объекдинения_с__NULL + Lesson 40 - Оператор объекдинения с NULL + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/App.config b/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/Program.cs b/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/Program.cs new file mode 100644 index 0000000..dd82f57 --- /dev/null +++ b/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/Program.cs @@ -0,0 +1,15 @@ +using System; + +/* + * Оператора объединения с NULL ?? + */ +class Program +{ + static void Main() + { + string str = null; + Console.WriteLine(str ?? "NULL"); + Console.WriteLine("Lenght" + str ?? "no"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1ed606d --- /dev/null +++ b/LessonsAndTasks/Lesson 40 - Оператор объекдинения с NULL/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 40 - Оператор объекдинения с NULL")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 40 - Оператор объекдинения с NULL")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("d4526e9d-e808-4922-8841-96a03bb14650")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/40_wf_Lesson - Оператор объекдинения с NUL.csproj b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/40_wf_Lesson - Оператор объекдинения с NUL.csproj new file mode 100644 index 0000000..8362ac4 --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/40_wf_Lesson - Оператор объекдинения с NUL.csproj @@ -0,0 +1,85 @@ + + + + + Debug + AnyCPU + {E936CD37-FC1B-4D05-8BE7-B3F29EC393B1} + WinExe + Lesson_40_wf___Оператор_объекдинения_с__NULL + Lesson 40_wf - Оператор объекдинения с NULL + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/App.config b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Contacts.cs b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Contacts.cs new file mode 100644 index 0000000..affbd7a --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Contacts.cs @@ -0,0 +1,5 @@ +public class Contacts +{ + public string PhoneNumber { get; set; } + public string Email { get; set; } +} diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Form1.Designer.cs b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Form1.Designer.cs new file mode 100644 index 0000000..ca75f72 --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Form1.Designer.cs @@ -0,0 +1,68 @@ +partial class Form1 +{ + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором форм Windows + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.listBox1 = new System.Windows.Forms.ListBox(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // listBox1 + // + this.listBox1.FormattingEnabled = true; + this.listBox1.Location = new System.Drawing.Point(12, 12); + this.listBox1.Name = "listBox1"; + this.listBox1.Size = new System.Drawing.Size(588, 381); + this.listBox1.TabIndex = 0; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(13, 404); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 1; + this.button1.Text = "RUN"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(612, 439); + this.Controls.Add(this.button1); + this.Controls.Add(this.listBox1); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListBox listBox1; + private System.Windows.Forms.Button button1; +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Form1.cs b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Form1.cs new file mode 100644 index 0000000..5911682 --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Form1.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +public partial class Form1 : Form +{ + public Form1() + { + InitializeComponent(); + } + + private List GetPerson() + { + return new List() + { + new Person() {FirstName = "1", MiddleName = "2", SecondName = "3"}, + new Person() {FirstName = "11", MiddleName = "22", SecondName = "33"}, + new Person() {FirstName = "111", MiddleName = "222"}, + new Person() {FirstName = "unknown", Contacts = new Contacts() { PhoneNumber = "1234"} } + }; + } + + private void button1_Click(object sender, EventArgs e) + { + listBox1.Items.Clear(); + var persons = GetPerson(); + + foreach (var person in persons) + { + listBox1.Items.Add($"{person.GetFullName()} | {person.GetPhoneNumber()}"); + } + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Form1.resx b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Person.cs b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Person.cs new file mode 100644 index 0000000..1704c6e --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Person.cs @@ -0,0 +1,18 @@ +public class Person +{ + public string FirstName { get; set; } + public string MiddleName { get; set; } + public string SecondName { get; set; } + + public Contacts Contacts { get; set; } + + public string GetFullName() + { + return $"Фамилия: {FirstName ?? "нет данных"} | Имя: {MiddleName ?? "нет данных"} | Отчество: {SecondName ?? "нет данных"}"; + } + + public string GetPhoneNumber() + { + return $"Phone Number: {Contacts?.PhoneNumber ?? "нет данных"}"; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Program.cs b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Program.cs new file mode 100644 index 0000000..5ec4455 --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Program.cs @@ -0,0 +1,16 @@ +using System; +using System.Windows.Forms; + +static class Program +{ + /// + /// Главная точка входа для приложения. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d8e04dc --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 40_wf - Оператор объекдинения с NULL")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 40_wf - Оператор объекдинения с NULL")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("e936cd37-fc1b-4d05-8be7-b3f29ec393b1")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Resources.Designer.cs b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Resources.Designer.cs new file mode 100644 index 0000000..d1f5461 --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Resources.Designer.cs @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программным средством. +// Версия среды выполнения: 4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если +// код создан повторно. +// +//------------------------------------------------------------------------------ + + +/// +/// Класс ресурсов со строгим типом для поиска локализованных строк и пр. +/// +// Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder +// класс с помощью таких средств, как ResGen или Visual Studio. +// Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen +// с параметром /str или заново постройте свой VS-проект. +[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] +[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] +[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] +internal class Resources +{ + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Lesson_40_wf___Оператор_объекдинения_с__NULL.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Переопределяет свойство CurrentUICulture текущего потока для всех + /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Resources.resx b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Settings.Designer.cs b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Settings.Designer.cs new file mode 100644 index 0000000..cfd15b6 --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Lesson_40_wf___Оператор_объекдинения_с__NULL.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Settings.settings b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/LessonsAndTasks/Lesson 40_wf - Оператор объекдинения с NULL/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/41_Lesson - Оператор присваивания объединения со значением NULL.csproj b/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/41_Lesson - Оператор присваивания объединения со значением NULL.csproj new file mode 100644 index 0000000..dee3f39 --- /dev/null +++ b/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/41_Lesson - Оператор присваивания объединения со значением NULL.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {8E106150-257D-45F1-84BD-FC7AAE39FF5B} + Exe + Lesson_41___Оператор_присваивания_объединения_со_значением_NULL + Lesson 41 - Оператор присваивания объединения со значением NULL + v4.7.2 + 512 + true + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/App.config b/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/App.config new file mode 100644 index 0000000..ecdcf8a --- /dev/null +++ b/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/Program.cs b/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/Program.cs new file mode 100644 index 0000000..c13f509 --- /dev/null +++ b/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/Program.cs @@ -0,0 +1,16 @@ +/* + * Оператор присваивания объединения со значением NULL ??= + */ +using System; + +class Program +{ + static void Main() + { + string str = null; + //возвращает другую строку если получили NULL - ее длинну + //str ??= "def"; + //Console.WriteLine(str.Length); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e325cc3 --- /dev/null +++ b/LessonsAndTasks/Lesson 41 - Оператор присваивания объединения со значением NULL/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 41 - Оператор присваивания объединения со значением NULL")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 41 - Оператор присваивания объединения со значением NULL")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("8e106150-257d-45f1-84bd-fc7aae39ff5b")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 42 - Оператор условного NULL/42_Lesson - Оператор условного NULL.csproj b/LessonsAndTasks/Lesson 42 - Оператор условного NULL/42_Lesson - Оператор условного NULL.csproj new file mode 100644 index 0000000..22b4bbd --- /dev/null +++ b/LessonsAndTasks/Lesson 42 - Оператор условного NULL/42_Lesson - Оператор условного NULL.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {9737100B-A415-4E7D-ABD1-0D2B89981F16} + Exe + Lesson_42___Оператор_условного_NULL + Lesson 42 - Оператор условного NULL + v4.7.2 + 512 + true + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 42 - Оператор условного NULL/App.config b/LessonsAndTasks/Lesson 42 - Оператор условного NULL/App.config new file mode 100644 index 0000000..ecdcf8a --- /dev/null +++ b/LessonsAndTasks/Lesson 42 - Оператор условного NULL/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/LessonsAndTasks/Lesson 42 - Оператор условного NULL/Program.cs b/LessonsAndTasks/Lesson 42 - Оператор условного NULL/Program.cs new file mode 100644 index 0000000..79bdd59 --- /dev/null +++ b/LessonsAndTasks/Lesson 42 - Оператор условного NULL/Program.cs @@ -0,0 +1,23 @@ +using System; +using System.Linq; + +/* + * Оператор условного NULL ?. + */ +class Program +{ + static int[] GetArray() + { + int[] myArray = null; + return myArray; + } + + static void Main() + { + int[] myArray = GetArray(); + // ?. - проверяет равна ли сумма null или не равна + // ?? - оператор объединения с null + Console.WriteLine(myArray?.Sum() ?? -1); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 42 - Оператор условного NULL/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 42 - Оператор условного NULL/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6f7ddbb --- /dev/null +++ b/LessonsAndTasks/Lesson 42 - Оператор условного NULL/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 42 - Оператор условного NULL")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 42 - Оператор условного NULL")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("9737100b-a415-4e7d-abd1-0d2b89981f16")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/42_2_Lesson - Example 1 - Оператор условного NULL.csproj b/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/42_2_Lesson - Example 1 - Оператор условного NULL.csproj new file mode 100644 index 0000000..1898b7c --- /dev/null +++ b/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/42_2_Lesson - Example 1 - Оператор условного NULL.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {CD0F3063-D5AC-4B78-BC99-729D6FDD7478} + Exe + Lesson_42_2___Example_1___Оператор_условного_NULL + Lesson 42_2 - Example 1 - Оператор условного NULL + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/App.config b/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/Program.cs b/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/Program.cs new file mode 100644 index 0000000..b77c6c1 --- /dev/null +++ b/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/Program.cs @@ -0,0 +1,36 @@ +using System; + +/* + * Оператор условного null + */ +class Program +{ + private static Person GetPerson() + { + Person person = null; + return person; + } + + static void Main() + { + Person person = null; + + Console.WriteLine(person?.Contacts?.PhoneNumber ?? "no data"); + + person = GetPerson(); + + // person, Contacts и PhoneNumber - ссылочные типы - так как они class + Console.WriteLine(person?.Contacts?.PhoneNumber ?? "no data"); + Console.ReadKey(); + } +} + +public class Person +{ + public Contacts Contacts { get; set; } +} + +public class Contacts +{ + public string PhoneNumber { get; set; } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c6c79fe --- /dev/null +++ b/LessonsAndTasks/Lesson 42_2 - Example 1 - Оператор условного NULL/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 42_2 - Example 1 - Оператор условного NULL")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 42_2 - Example 1 - Оператор условного NULL")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("cd0f3063-d5ac-4b78-bc99-729d6fdd7478")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/43_Lesson - Ключевое слово ref, что это и предназначение.csproj b/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/43_Lesson - Ключевое слово ref, что это и предназначение.csproj new file mode 100644 index 0000000..c087a91 --- /dev/null +++ b/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/43_Lesson - Ключевое слово ref, что это и предназначение.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {EB3EC543-CB41-4E1A-9500-9AEF5C3BC0B7} + Exe + Lesson_43___Ключевое_слово_ref__что_это_и_предназначение + Lesson 43 - Ключевое слово ref, что это и предназначение + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/App.config b/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/Program.cs b/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/Program.cs new file mode 100644 index 0000000..72b9892 --- /dev/null +++ b/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/Program.cs @@ -0,0 +1,225 @@ +using System; + +/* + * Ключевое слово ref + */ +/* + * Передача аргументов по ссылке + */ +/* + * ДЗ №1 + * Написать метод Resize() изменяющий количество элементов массива + * (метод должен иметь возможность увеличить или уменьшить число элементов массива) + * + * ДЗ №2 + * Написать методы для добавления элемента в начало массива, в + * конец массива и по указанному индексу + * + * ДЗ №3 + * Написать методы для удаления первого элемента массива, + * последнего элемента массива и элемента по указанному индексу + * + */ +class Program +{ + /// + /// ДЗ №1 + /// + /// # + /// # + /// + public static ref int[] Resize(ref int[] myArray, int counElements) + { + myArray = new int[counElements]; + return ref myArray; + } + + /// + /// DZ_1 LESSON + /// + /// # + /// # + /// # + public static void ResizeLesson(ref T[] array, int newSize) + { + T[] newArray = new T[newSize]; + for (int i = 0; i < array.Length && i < newArray.Length; i++) + { + newArray[i] = array[i]; + } + + array = newArray; + } + + /// + /// ДЗ №2 (insert) + /// + /// # + /// # + /// # + /// int[] + public static ref int[] Rebuild(ref int[] myArray, int index, int value) + { + int res_num = (index > myArray.Length) ? index - myArray.Length : 1; + Array.Resize(ref myArray, myArray.Length + res_num); + switch (index) + { + case 0: + for (int num_el = myArray.Length - 1; num_el > 0; num_el--) + myArray[num_el] = myArray[num_el - 1]; + myArray[0] = value; + break; + default: + if (index < myArray.Length) + { + for (int num_el = myArray.Length - 1; num_el > 0; num_el--) + { + myArray[num_el] = myArray[num_el - 1]; + if (index == num_el) + { + myArray[index - 1] = value; + break; + } + } + } + else + { + myArray[index - 1] = value; + } + break; + } + return ref myArray; + } + + /// + /// ДЗ №3 + /// + /// # + /// # + /// int[] + public static ref int[] DeleteElementArray(ref int[] myArray, int index) + { + int[] tmpArray = new int[myArray.Length]; + Array.Copy(myArray, tmpArray, tmpArray.Length); + myArray = new int[myArray.Length - 1]; + if (index <= tmpArray.Length) + { + int ind = 0; + for (int num_el = 0; num_el < tmpArray.Length; num_el++) + { + if (index - 1 != num_el) + { + myArray[ind] = tmpArray[num_el]; + ind++; + } + } + } + return ref myArray; + } + + //При передаче данные просто копируются из одной переменной в другую + //Сейчас мы не можем повлиять на значение переменной a в Main - они не зависят друг от друга + //Если добавить слово ref то мы помещаем ссылку на саму переменную а не на ее значение и можем менять значение в Main + //параметр помещается по ссылке а не по значению + public static void Foo(ref int a) + { + a = -5; + } + + /* + * Передача аргументов по ссылке + */ + public struct MyStruct + { + public int a; + public double b; + public float c; + } + + /* + * Передача аргументов по ссылке в класс + */ + public class MyClass + { + public int a; + public double b; + public float c; + } + + public static void Foos(ref MyStruct myStruct) + { + myStruct.a = -5; + } + + public static void FooClass(MyClass myClass) + { + myClass.a = -5; + } + + public static void FooArray(int[] myArr) + { + myArr[0] = -5; + } + + public static void FooArrayClear(ref int[] myArr) + { + myArr = null; + } + + public static ref int FooArrayReturn(int[] myArr) + { + return ref myArr[0]; + } + + /// + /// ref - позволяет произвести действия над ссылкой а не над данными + /// + static void Main() + { + int a = 2; + Foo(ref a); + + MyStruct Mystruct = new MyStruct(); + MyClass myClass = new MyClass(); + int[] myArray = { 1, 4, 6 }; + + Foos(ref Mystruct); + + FooClass(myClass); + + FooArray(myArray); + + FooArrayClear(ref myArray); + + Console.WriteLine(a); + + //Фишка Ссылочных локальных переменных + //Через слово ref присваиваем ссылку на переменную в массиве + int[] myArr_2 = { 1, 2, 3 }; + ref int el = ref myArr_2[2]; + el = 6; + Console.WriteLine(myArr_2[2]); + + ref int bq = ref FooArrayReturn(myArr_2); + + //ДЗ №1 + int[] dz_1 = { 4, 2 }; + string[] dz_1_2 = { "aaa", "vbvv" }; + Array.Resize(ref dz_1, 10); + Resize(ref dz_1, 10); + ResizeLesson(ref dz_1, 10); + ResizeLesson(ref dz_1_2, 10); + Console.WriteLine(dz_1[7]); + + //ДЗ №2 + int[] dz_2 = { 1, 2, 3, 2, 4, 5, 6 }; + + Rebuild(ref dz_2, 0, 10); + Console.WriteLine(dz_2[0]); + + //ДЗ №3 + int[] dz_3 = { 44, 33, 11, 4 }; + DeleteElementArray(ref dz_3, 1); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5228944 --- /dev/null +++ b/LessonsAndTasks/Lesson 43 - Ключевое слово ref, что это и предназначение/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 43 - Ключевое слово ref, что это и предназначение")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 43 - Ключевое слово ref, что это и предназначение")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("eb3ec543-cb41-4e1a-9500-9aef5c3bc0b7")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/44_Lesson - Ключевое слово out, разница out и ref.csproj b/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/44_Lesson - Ключевое слово out, разница out и ref.csproj new file mode 100644 index 0000000..f1d896d --- /dev/null +++ b/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/44_Lesson - Ключевое слово out, разница out и ref.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {ACE28A2C-EB6B-4244-B493-DD99867CB90D} + Exe + Lesson_44___Ключевое_слово_out__разница_out_и_ref + Lesson 44 - Ключевое слово out, разница out и ref + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/App.config b/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/Program.cs b/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/Program.cs new file mode 100644 index 0000000..0712b04 --- /dev/null +++ b/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/Program.cs @@ -0,0 +1,38 @@ +using System; +using System.Text; + +/* + * Ключевое слово out + * Разница между ref и out + */ +class Program +{ + public static void Foo(ref int value) + { + value++; + System.Console.WriteLine(value); + } + + /// + /// Change input val + /// out - обязывает нас присваивать значение переменной внутри метода + /// + /// value + public static void Bar(out int value) + { + value = 0; + System.Console.WriteLine(value); + } + + static void Main() + { + int a = 10; + int aa; + Foo(ref a); + Bar(out aa); + string str = "3"; + int.TryParse(str, out int result); + Bar(out int aaa); // сразу можем объявить внутри метода с out + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..89af577 --- /dev/null +++ b/LessonsAndTasks/Lesson 44 - Ключевое слово out, разница out и ref/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 44 - Ключевое слово out, разница out и ref")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 44 - Ключевое слово out, разница out и ref")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("ace28a2c-eb6b-4244-b493-dd99867cb90d")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/45_Lesson - Модификатор in, разница in ref и out.csproj b/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/45_Lesson - Модификатор in, разница in ref и out.csproj new file mode 100644 index 0000000..4503a0a --- /dev/null +++ b/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/45_Lesson - Модификатор in, разница in ref и out.csproj @@ -0,0 +1,56 @@ + + + + + Debug + AnyCPU + {BFE4216D-7D2E-416A-834D-43AA1C639524} + Exe + Lesson_45___Модификатор_in__разница_in_ref_и_out + Lesson 45 - Модификатор in, разница in ref и out + v4.7.2 + 512 + true + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + 7.2 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + 7.2 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/App.config b/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/App.config new file mode 100644 index 0000000..ecdcf8a --- /dev/null +++ b/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/Program.cs b/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/Program.cs new file mode 100644 index 0000000..01e731c --- /dev/null +++ b/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/Program.cs @@ -0,0 +1,83 @@ +using System; +using System.Diagnostics; + +/* + * Ключевое слово in + */ +class Program +{ + private static float k = 0; + + struct Point + { + public float x; + public float y; + public float z; + public decimal e; + public decimal e1; + public decimal e2; + public decimal e3; + public decimal e4; + public decimal e5; + public decimal e6; + public decimal e7; + public decimal e8; + public decimal e9; + public decimal e0; + public decimal e11; + public decimal e12; + public decimal e13; + public decimal e14; + public decimal e15; + } + + static void Fos(Point value) + { + + } + + static void Bar(in Point value) + { + k = value.x; + } + + /// + /// in позволяет только извлечь данные из переменной + /// полезно для структур, для экономии памяти + /// + /// + public static void Foo(in int value) + { + Console.WriteLine(value); + } + + static void Main() + { + Point a = new Point(); + a.x = 5; + + Stopwatch sw = Stopwatch.StartNew(); + + for (int i = 0; i < int.MaxValue; i++) + { + Fos(a); + } + + sw.Stop(); + + Console.WriteLine($"Fos {sw.ElapsedMilliseconds}"); + + sw.Restart(); + + for (int i = 0; i < int.MaxValue; i++) + { + Bar(a); + } + + sw.Stop(); + + Console.WriteLine($"Bar {sw.ElapsedMilliseconds}"); + Console.WriteLine(k); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..68829d4 --- /dev/null +++ b/LessonsAndTasks/Lesson 45 - Модификатор in, разница in ref и out/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 45 - Модификатор in, разница in ref и out")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 45 - Модификатор in, разница in ref и out")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("bfe4216d-7d2e-416a-834d-43aa1c639524")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 46 - Ключевое слово params/46_Lesson - Ключевое слово params.csproj b/LessonsAndTasks/Lesson 46 - Ключевое слово params/46_Lesson - Ключевое слово params.csproj new file mode 100644 index 0000000..38ae24f --- /dev/null +++ b/LessonsAndTasks/Lesson 46 - Ключевое слово params/46_Lesson - Ключевое слово params.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {69B61D89-B578-4F07-9DD5-7204D4F682BD} + Exe + Lesson_46___Ключевое_слово_params + Lesson 46 - Ключевое слово params + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 46 - Ключевое слово params/App.config b/LessonsAndTasks/Lesson 46 - Ключевое слово params/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 46 - Ключевое слово params/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 46 - Ключевое слово params/Program.cs b/LessonsAndTasks/Lesson 46 - Ключевое слово params/Program.cs new file mode 100644 index 0000000..518af35 --- /dev/null +++ b/LessonsAndTasks/Lesson 46 - Ключевое слово params/Program.cs @@ -0,0 +1,66 @@ +using System; + +/* + * Ключевое слово params + */ +class Program +{ + private static int Sum(int a, int b) + { + return a + b; + } + + private static int Sum(int a, int b, int c) + { + return a + b + c; + } + + /// + /// Бонус + /// + /// список параметров + private static void ParObj(params object[] parameters) + { + string message = "Тип данных {0}, значение {1}"; + foreach (var item in parameters) + { + System.Console.WriteLine(message, item.GetType(), item); + } + } + + /// + /// params - для того чтобы передавать параметры отдельно через запятую + /// * не может быть двух params в методе + /// * другой обычный параметр должен быть перед params + /// + /// сообщение + /// список параметров + /// + private static int SumParams(string message, params int[] parameters) + { + int result = 0; + + for (int i = 0; i < parameters.Length; i++) + { + result += parameters[i]; + } + + //or + //parameters.Sum(); + + return result; + } + + static void Main() + { + int result = Sum(5, 10); + + Console.WriteLine(result); + + Console.WriteLine(SumParams("message", 1, 2, 3, 4)); + + // *Бонус + ParObj(1, 1.0, 1f, "dd", 'a', true); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 46 - Ключевое слово params/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 46 - Ключевое слово params/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c4af7f3 --- /dev/null +++ b/LessonsAndTasks/Lesson 46 - Ключевое слово params/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 46 - Ключевое слово params")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 46 - Ключевое слово params")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("69b61d89-b578-4f07-9dd5-7204d4f682bd")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/47_Lesson - Необязательные параметры метода (параметры по умолчанию).csproj b/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/47_Lesson - Необязательные параметры метода (параметры по умолчанию).csproj new file mode 100644 index 0000000..b6645db --- /dev/null +++ b/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/47_Lesson - Необязательные параметры метода (параметры по умолчанию).csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {9B7F8691-E337-4CA4-9E24-46EF69803734} + Exe + Lesson_47___Необязательные_параметры_метода__параметры_по_умолчанию_ + Lesson 47 - Необязательные параметры метода %28параметры по умолчанию%29 + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/App.config b/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/Program.cs b/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/Program.cs new file mode 100644 index 0000000..761cf2e --- /dev/null +++ b/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/Program.cs @@ -0,0 +1,34 @@ +using System; + +/* + * Необязательные параметры методов + */ +class Program +{ + /// + /// Параметры по умолчанию всегда должны быть в конце списка + /// + /// # + /// # + /// Logging + /// + private static int Sum(int a, int b, bool enableLogging = false) + { + int result = a + b; + + if (enableLogging) + { + Console.WriteLine($"Значение переменной a = {a}"); + Console.WriteLine($"Значение переменной b = {b}"); + Console.WriteLine($"Значение переменной result = {result}"); + } + + return result; + } + + static void Main() + { + Sum(2, 3); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9314a54 --- /dev/null +++ b/LessonsAndTasks/Lesson 47 - Необязательные параметры метода (параметры по умолчанию)/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 47 - Необязательные параметры метода (параметры по умолчанию)")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 47 - Необязательные параметры метода (параметры по умолчанию)")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("9b7f8691-e337-4ca4-9e24-46ef69803734")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 48 - Именнованные параметры/48_Lesson - Именнованные параметры.csproj b/LessonsAndTasks/Lesson 48 - Именнованные параметры/48_Lesson - Именнованные параметры.csproj new file mode 100644 index 0000000..caf0725 --- /dev/null +++ b/LessonsAndTasks/Lesson 48 - Именнованные параметры/48_Lesson - Именнованные параметры.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {A3DCBFE2-2D22-4464-9F15-3D71EDBB5F4D} + Exe + Lesson_48___Именнованные_параметры + Lesson 48 - Именнованные параметры + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 48 - Именнованные параметры/App.config b/LessonsAndTasks/Lesson 48 - Именнованные параметры/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 48 - Именнованные параметры/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 48 - Именнованные параметры/Program.cs b/LessonsAndTasks/Lesson 48 - Именнованные параметры/Program.cs new file mode 100644 index 0000000..524f0b6 --- /dev/null +++ b/LessonsAndTasks/Lesson 48 - Именнованные параметры/Program.cs @@ -0,0 +1,41 @@ +using System; + +/* + * Именнованные параметры + */ + +class Program +{ + /// + /// Параметры по умолчанию всегда должны быть в конце списка + /// + /// + /// + /// + /// + private static int Sum(int a, int b, bool enableLogging = false) + { + int result = a + b; + + if (enableLogging) + { + Console.WriteLine($"Значение переменной a = {a}"); + Console.WriteLine($"Значение переменной b = {b}"); + Console.WriteLine($"Значение переменной result = {result}"); + } + + return result; + } + + static void Main() + { + Sum(a: 1, b: 2); + + int firstValue = 2; + int secondValue = 3; + + //Чтобы внести ясность тому что выполнит функция + Sum(a: firstValue, b: secondValue, enableLogging: true); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 48 - Именнованные параметры/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 48 - Именнованные параметры/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..20dcafa --- /dev/null +++ b/LessonsAndTasks/Lesson 48 - Именнованные параметры/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 48 - Именнованные параметры")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 48 - Именнованные параметры")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("a3dcbfe2-2d22-4464-9f15-3d71edbb5f4d")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/49_Lesson - Что такое рекурсия, переполнение стека.csproj b/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/49_Lesson - Что такое рекурсия, переполнение стека.csproj new file mode 100644 index 0000000..74bdfdd --- /dev/null +++ b/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/49_Lesson - Что такое рекурсия, переполнение стека.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {AE6951C4-54B0-4EC4-8E52-8BF73EF1766C} + Exe + Lesson_49___Что_такое_рекурсия__переполнение_стека + Lesson 49 - Что такое рекурсия, переполнение стека + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/App.config b/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/Program.cs b/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/Program.cs new file mode 100644 index 0000000..fa8242f --- /dev/null +++ b/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/Program.cs @@ -0,0 +1,151 @@ +using System; + +/* + * Рекурсия + * + * Методы и стек + * + * Переполнение стека + */ +/* + * ДЗ 1 + * Реализовать вывод массива с помощью рекурсии + * + * ДЗ 2 + * Найти сумму элементов массива с помощью рекурсии + * + * ДЗ 3 + * Найти сумму цифр числа с помощью рекурсии Например - 561(число) = 12(сумма его чисел) + */ +class Program +{ + class Item + { + public int Value { get; set; } + public Item Child { get; set; } + } + + + static Item InitItem() + { + return new Item() + { + Value = 5, + Child = new Item() + { + Value = 5, + Child = new Item() + { + Value = 2 + } + } + }; + } + + static void Print(Item item) + { + if (item != null) + { + Console.WriteLine(item.Value); + Print(item.Child); + } + } + + /// + /// Когда метод вызывает сам себя - рекурсия + /// Обязательно нужно предусматривать условие выхода из рекурсии + /// Недостаток - использовать можно только для коротких операций с малым числом переменных + /// + /// + private static void Foo(int i) + { + Console.WriteLine(i); + if (i >= 3) + return; + i++; + Foo(i); + } + + /// + /// DZ_1 + /// + /// # + /// # + /// # + private static void PrintArray(T[] array, int index = 0) + { + Console.WriteLine(array[index]); + if (index + 1 == array.Length) + return; + index++; + + PrintArray(array, index); + } + + /// + /// DZ_2 + /// + /// # + /// # + /// # + private static void SumArray(int[] array, int index = 0, int Sum = 0) + { + Sum += array[index]; + if (index + 1 == array.Length) + { + Console.WriteLine("Summa: " + Sum); + return; + } + index++; + + SumArray(array, index, Sum); + } + + /// + /// DZ_3 + /// + /// # + /// # + /// # + private static void SumNumber(int number, int indexSymphol = 0, int Summa = 0) + { + int sym = 0; + int.TryParse((number.ToString()[indexSymphol]).ToString(), out sym); + Summa += sym; + if (indexSymphol + 1 == number.ToString().Length) + { + Console.WriteLine("Summa_Number: " + Summa); + return; + } + indexSymphol++; + + SumNumber(number, indexSymphol, Summa); + } + + static void Main() + { + Foo(0); + + Item item = InitItem(); + + Print(item); + //или + for (Item i = item; i != null; i = i.Child) + { + Console.WriteLine(i.Value); + } + + //DZ 1 + string[] dz_1 = { "33", "22", "11" }; + PrintArray(dz_1); + + //DZ 2 + int[] dz_2 = { 1, 3, 4 }; + SumArray(dz_2); + + //DZ 3 + int num = 564; + SumNumber(num); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f9f7183 --- /dev/null +++ b/LessonsAndTasks/Lesson 49 - Что такое рекурсия, переполнение стека/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 49 - Что такое рекурсия, переполнение стека")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 49 - Что такое рекурсия, переполнение стека")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("ae6951c4-54b0-4ec4-8e52-8bf73ef1766c")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert.sln b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert.sln new file mode 100644 index 0000000..b0457b8 --- /dev/null +++ b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 5 - конвертация строки, класс Convert", "Lesson 5 - конвертация строки, класс Convert\Lesson 5 - конвертация строки, класс Convert.csproj", "{57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {54F5E914-0F5C-4595-A873-C27A4281DAC7} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/05_Lesson - конвертация строки, класс Convert.csproj b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/05_Lesson - конвертация строки, класс Convert.csproj new file mode 100644 index 0000000..c433af4 --- /dev/null +++ b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/05_Lesson - конвертация строки, класс Convert.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {57ACDCF4-1C18-4EDE-9F92-4BA2791B523C} + Exe + Lesson_5___конвертация_строки__класс_Convert + Lesson 5 - конвертация строки, класс Convert + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/App.config b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/Program.cs b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/Program.cs new file mode 100644 index 0000000..9442c74 --- /dev/null +++ b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/Program.cs @@ -0,0 +1,58 @@ +using System; +using System.Globalization; + +/* + * конвертация строки + * класс Convert + */ +class Program +{ + static void Main() + { + string str = "5"; + string str2 = "2"; + string str3 = "1,3"; + string str4 = "1.5"; + + var numberFormatInfo = new NumberFormatInfo() + { + NumberDecimalSeparator = ".", + }; + + double db = Convert.ToDouble(str3); + double db1 = Convert.ToDouble(str4, numberFormatInfo); + + Console.WriteLine(db); + Console.WriteLine(db1); + + Console.WriteLine(str + str2); + + int a = Convert.ToInt32(str); // Демонстрация Convert + + Console.WriteLine(a); + + Console.WriteLine("\t"); + + string str1; + + int a1 = 0, a2 = 0, result; + + Console.WriteLine("Введите первое число: "); + + str1 = Console.ReadLine(); + + if(!string.IsNullOrWhiteSpace(str1)) + a1 = Convert.ToInt32(str1); + + Console.WriteLine("Введите второе число: "); + + str1 = Console.ReadLine(); + + if (!string.IsNullOrWhiteSpace(str1)) + a2 = Convert.ToInt32(str1); + + result = a1 + a2; + + Console.WriteLine("Сумма чисел: " + result); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a0aa7b5 --- /dev/null +++ b/LessonsAndTasks/Lesson 5 - Конвертация строки, класс Convert/Lesson 5 - конвертация строки, класс Convert/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 5 - конвертация строки, класс Convert")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 5 - конвертация строки, класс Convert")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("57acdcf4-1c18-4ede-9f92-4ba2791b523c")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/50_Lesson - Преобразование и приведение, явное и неявное.csproj b/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/50_Lesson - Преобразование и приведение, явное и неявное.csproj new file mode 100644 index 0000000..7ad9641 --- /dev/null +++ b/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/50_Lesson - Преобразование и приведение, явное и неявное.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {4E053D6F-23F8-4262-8331-7852E8788FB2} + Exe + Lesson_50___Преобразование_и_приведение__явное_и_неявное + Lesson 50 - Преобразование и приведение, явное и неявное + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/App.config b/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/Program.cs b/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/Program.cs new file mode 100644 index 0000000..833ec8e --- /dev/null +++ b/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/Program.cs @@ -0,0 +1,31 @@ +using System; + +/* + * Преобразование и приведение примитивных типов в C# + */ +class Program +{ + static void Foo(float value) + { + Console.WriteLine(value); + } + + static void Main() + { + int a = 5; + double aa = 5.7; + Foo(a); // Пример не явного преобразования implicit - (расширяющее преобразование) + Foo((float)aa); // Пример явного преобразования explicit (сужающее преобразование) - больший обьект в меньшую упаковку положили + int h = 500; + byte k = (byte)h; + int b = 800; + bool k_r = Convert.ToBoolean(b); + int u = 300; + float uu = 400F; + float res_f = u + uu; + int uuu = 300; + float uuuu = 400F; + int res_ff = (int)(uuu + uuuu); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..80a4d64 --- /dev/null +++ b/LessonsAndTasks/Lesson 50 - Преобразование и приведение, явное и неявное/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 50 - Преобразование и приведение, явное и неявное")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 50 - Преобразование и приведение, явное и неявное")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("4e053d6f-23f8-4262-8331-7852e8788fb2")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/51_Lesson - Арифметическое переполнение, checked unchecked.csproj b/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/51_Lesson - Арифметическое переполнение, checked unchecked.csproj new file mode 100644 index 0000000..31399e9 --- /dev/null +++ b/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/51_Lesson - Арифметическое переполнение, checked unchecked.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {768CA07B-FAC9-4233-BB4A-E522E5CED0FA} + Exe + Lesson_51___Арифметическое_переполнение__checked_unchecked + Lesson 51 - Арифметическое переполнение, checked unchecked + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/App.config b/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/Program.cs b/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/Program.cs new file mode 100644 index 0000000..df5b98b --- /dev/null +++ b/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/Program.cs @@ -0,0 +1,48 @@ +using System; + +/* + * "Ядерный Ганди" и аримфметическое переполнение + */ +class Program +{ + static void Main() + { + #region Для целочисленных типов данных + byte agression = 1; + + byte democracyModifier = 2; + + try + { + // Если вычесть из 1 2, то будет 255 а не 0, это арифметическое переполнение + // и слово checked это проверяет - uncehcked {} выключает проверку переполнения + agression = checked((byte)(agression - democracyModifier)); // Служащее преобразование данных + Console.WriteLine(agression); + } + catch (OverflowException) + { + Console.WriteLine("Error"); + } + #endregion + + #region Для дробных типов данных + double a = 1.0 / 0.0; + + Console.WriteLine(double.IsInfinity(a)); // output: True + + double b = 0.0 / 0.0; + + Console.WriteLine(double.IsNaN(b)); // output: True + + double c = double.MaxValue + double.MinValue; + + Console.WriteLine(double.IsInfinity(c)); // output: True + + decimal aa = decimal.MaxValue; + decimal bb = decimal.MaxValue; + // *Для арифметических операндов типа decimal переполнение всегда показывает исключение + // decimal cc = unchecked(a + b); + #endregion + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ec53d6f --- /dev/null +++ b/LessonsAndTasks/Lesson 51 - Арифметическое переполнение, checked unchecked/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 51 - Арифметическое переполнение, checked unchecked")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 51 - Арифметическое переполнение, checked unchecked")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("768ca07b-fac9-4233-bb4a-e522e5ced0fa")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/52_Lesson - Что такое Nullable, Null совместимые значимые типы Nullable.csproj b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/52_Lesson - Что такое Nullable, Null совместимые значимые типы Nullable.csproj new file mode 100644 index 0000000..d273722 --- /dev/null +++ b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/52_Lesson - Что такое Nullable, Null совместимые значимые типы Nullable.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {B2FBBA96-D2CA-4051-A9FF-36D4FD2FE1BC} + Exe + Lesson_52___Что_такое_Nullable__Null_совместимые_значимые_типы_Nullable + Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/App.config b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/ClassDiagram1.cd b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/ClassDiagram1.cd new file mode 100644 index 0000000..7b89419 --- /dev/null +++ b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/ClassDiagram1.cd @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/Program.cs b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/Program.cs new file mode 100644 index 0000000..51d2691 --- /dev/null +++ b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/Program.cs @@ -0,0 +1,40 @@ +using System; + +/* + * Null - совместимые значимые типы (Nullable) + */ +class Program +{ + static void Main() + { + string str = null; + + int? a = null; + // Проверить есть ли в Nullable переменной значение + Console.WriteLine(a == null); // True + Console.WriteLine(a.HasValue); // False + Console.WriteLine(a.GetValueOrDefault()); // 0 + Console.WriteLine(a.GetValueOrDefault(3)); // 3 + Console.WriteLine(a ?? 55); // 55 + try + { + Console.WriteLine(a.Value); // InvalidOperationException + } + catch (Exception) + { + Console.WriteLine("InvalidOperationException"); + } + DateTime? dateTime = null; + Nullable dateTime1 = null; + Console.WriteLine(dateTime1); + + int? aa = 5; + int? b = 22; + int? result = a + b; + Console.WriteLine(result); + Console.WriteLine(aa == b); + Console.WriteLine(a > b); + Console.WriteLine(a < b); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7278d5d --- /dev/null +++ b/LessonsAndTasks/Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("b2fbba96-d2ca-4051-a9ff-36d4fd2fe1bc")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/53_Lesson - var . Это не тип данных. Неявно типизированные переменные.csproj b/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/53_Lesson - var . Это не тип данных. Неявно типизированные переменные.csproj new file mode 100644 index 0000000..35838bf --- /dev/null +++ b/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/53_Lesson - var . Это не тип данных. Неявно типизированные переменные.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {E927DC0E-7736-47FF-B661-96534265380B} + Exe + Lesson_53___var.Это_не_тип_данных.Неявно_типизированные_переменные + Lesson_53___var.Это_не_тип_данных.Неявно_типизированные_переменные + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/App.config b/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/Program.cs b/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/Program.cs new file mode 100644 index 0000000..81d7659 --- /dev/null +++ b/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/Program.cs @@ -0,0 +1,71 @@ +using System; +using System.Linq; +using System.Diagnostics; +using System.Collections.Generic; + +/* + * Ключевое слово var + * + * Неявно типизированные локальные переменные + */ +class Program +{ + static int Sum_Int(int a, int b) + { + int aa = a + b; + return aa; + } + static int Sum_Var(int a, int b) + { + var aa = a + b; + return aa; + } + + static void Main() + { + var u = 5; + + // Когда полезен? + // 1 - сократить длинну кода + var dict = new Dictionary(); + var list = new List(); + // 2 - создать анонимный тип данных + var obj = new { Name = "Мартин", Age = 25 }; + + // 3 - использовать при выборке элементов в массиве + int[] numbers = { 1, 2, 3, 2, 4, 5 }; + var result = from i in numbers where i > 1 select i; + foreach (var item in result) + Console.WriteLine($"{item}\t"); + + + Stopwatch sw = Stopwatch.StartNew(); + // 4 - когда нужно получить результат выполнения метода + for (int i = 0; i < int.MaxValue; i++) + { + var sum_int = Sum_Int(1, i); + } + sw.Stop(); + Console.WriteLine($"Sum_Int {sw.ElapsedMilliseconds}"); + sw.Restart(); + for (int i = 0; i < int.MaxValue; i++) + { + var sum_var = Sum_Var(1, i); + } + sw.Stop(); + Console.WriteLine($"Sum_Var {sw.ElapsedMilliseconds}"); + + + /* + * Не может быть использовано параметром метода + * static void Bar (var a) + * Не может быть типом возвращаемого значения + * static var Foo() + * Не может быть полями класса + * class MyClass { public var a} + */ + Console.WriteLine(); + Console.WriteLine(u.GetType()); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6f353b7 --- /dev/null +++ b/LessonsAndTasks/Lesson 53 - var . Это не тип данных. Неявно типизированные переменные/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 53 - var . Это не тип данных. Неявно типизированные переменные")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 53 - var . Это не тип данных. Неявно типизированные переменные")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("e927dc0e-7736-47ff-b661-96534265380b")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/54_Lesson - enum, что это, и для чего нужно - перечисления.csproj b/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/54_Lesson - enum, что это, и для чего нужно - перечисления.csproj new file mode 100644 index 0000000..5082483 --- /dev/null +++ b/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/54_Lesson - enum, что это, и для чего нужно - перечисления.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {56F7519C-2D4F-4939-B7DB-295EC0BDBF6C} + Exe + Lesson_54___enum__что_это__и_для_чего_нужно___перечисления + Lesson 54 - enum, что это, и для чего нужно - перечисления + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/App.config b/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/Program.cs b/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/Program.cs new file mode 100644 index 0000000..48c2c13 --- /dev/null +++ b/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/Program.cs @@ -0,0 +1,105 @@ +using System; + +/* + * enum (перечисления) + */ +class Program +{ + public enum DayOfWeek : byte + { + Monday = 1, + Tuesday = 2, + Wednesday = 3, + Thursday = 4, + Friday = 5, + Saturday = 6, + Sunday = 7 + } + + enum Color + { + White, + Red, + Green, + Blue, + Orange + } + + public static void Main() + { + while (true) + { + ConsoleKey key = Console.ReadKey().Key; + + int keyCode = (int)key; + + Console.WriteLine($"\tEnum {key} \tKey Code {keyCode}"); + + if (key == ConsoleKey.Enter) + Console.WriteLine("Enter"); + + DayOfWeek dayOfWeek = DayOfWeek.Monday; + + // получаем тип данных + Console.WriteLine(Enum.GetUnderlyingType(typeof(DayOfWeek)).Name); + + Console.WriteLine(dayOfWeek); + + // приводим dayofweek к int + Console.WriteLine((int)dayOfWeek); + // приводим dayofweek к Dayofweek к int + int value = 3; + // Проверяем существования дня под таким номером в перечислении + if (Enum.IsDefined(typeof(DayOfWeek), (DayOfWeek)value)) + Console.WriteLine((DayOfWeek)value); + // получаем следующий день + DayOfWeek nextday = GetNextDay(dayOfWeek); + Console.WriteLine(nextday); + + // получить и вывести сразу все значения перечисления + var values = Enum.GetValues(typeof(Color)); + + foreach (var item in values) + { + Console.WriteLine(item); + } + + Console.WriteLine("Write to name Color [White][Red][Green][Blue][Orange]"); + // перечисления можно парсить + string str = Console.ReadLine(); + // ignoreCase - игнорировать большие и маленькие буквы + Color color = (Color)Enum.Parse(typeof(Color), str, ignoreCase: true); + Console.WriteLine(color); + + // ну и фишка которая известна из начальных уроков + switch (color) + { + case Color.White: + break; + case Color.Red: + break; + case Color.Green: + break; + case Color.Blue: + break; + case Color.Orange: + break; + default: + break; + } + } + } + + /// + /// получаем следующий день + /// + /// day/param> + /// DayOfWeek + public static DayOfWeek GetNextDay(DayOfWeek day) + { + if (day < DayOfWeek.Sunday) + return day + 1; + + return DayOfWeek.Monday; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ccdb0b4 --- /dev/null +++ b/LessonsAndTasks/Lesson 54 - enum, что это, и для чего нужно - перечисления/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 54 - enum, что это, и для чего нужно - перечисления")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 54 - enum, что это, и для чего нужно - перечисления")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("56f7519c-2d4f-4939-b7db-295ec0bdbf6c")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/55_Lesson - Что такое КЛАСС - ООП, объект, экземпляр класса.csproj b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/55_Lesson - Что такое КЛАСС - ООП, объект, экземпляр класса.csproj new file mode 100644 index 0000000..4bf54d3 --- /dev/null +++ b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/55_Lesson - Что такое КЛАСС - ООП, объект, экземпляр класса.csproj @@ -0,0 +1,55 @@ + + + + + Debug + AnyCPU + {730EDE55-501D-4A60-B7E8-F6ADC743159C} + Exe + Lesson_55___Что_такое_КЛАСС___ООП__объект__экземпляр_класса + Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/App.config b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/ClassDiagram1.cd b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/ClassDiagram1.cd new file mode 100644 index 0000000..30deedd --- /dev/null +++ b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/ClassDiagram1.cd @@ -0,0 +1,39 @@ + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAABgAAAAAAA= + Program.cs + + + + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAEAAA= + Program.cs + + + + + + QAAAAAAAAABAQAAAAAAAAAAAEAAAAAAAAAAACAAAAgA= + Student.cs + + + + + + + + + + AAACAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAADAAAAA= + Program.cs + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/Program.cs b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/Program.cs new file mode 100644 index 0000000..5b665d4 --- /dev/null +++ b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/Program.cs @@ -0,0 +1,88 @@ +using System; + +/* + * ООП + * класс + * объект класса + */ +enum Color +{ + Red, + Green, + Orange, + Yellow, + Blue +} + +/// +/// ТОЧКА +/// Класс - это некий чертеж +/// Класс - это наш собственный тип данных +/// Класс - это ссылочный тип данных (мы должны выделить место в управляемой куче где он будет размещен) +/// Переменные внутри класса - называются поля со своими модификаторами доступа +/// +class Point +{ + public int x; + public int y; + public Color color; +} + +/// +/// Основной класс +/// +class Program +{ + static Students GetStudent() + { + return new Students + { + id = Guid.NewGuid(), + firstName = "first", + lastName = "last", + middleName = "middle", + age = 24, + group = "professional" + }; + } + + static void Print(Students student_val) + { + Console.WriteLine($"id: {student_val.id}, firstName: {student_val.firstName},\n" + + $"lastName: {student_val.lastName}, middleName: {student_val.middleName},\n" + + $"age: {student_val.age}, group: {student_val.group}"); + } + + //*Любой обьект в языке C# является наследником типа object + static void Main() + { + // экземпляр(объект) класса - это уже готовый построенный дом + Point point_1 = new Point(); + point_1.x = 4; + point_1.y = 2; + + Console.WriteLine($" x: {point_1.x}, y: {point_1.y}"); + + Point point_2 = new Point(); + point_2.x = 2; + point_2.y = 6; + + // Доказательство, того что класс - ссылочный тип + Point test = new Point(); + test = null; + // мы разорвали связь между данными в управляемой куче и объектом класса + // test.x = 4; + // test.y = 2; + + Point point_3 = new Point(); + point_3.x = 4; + point_3.y = 2; + point_3.color = Color.Orange; + Console.WriteLine($"X: {point_3.x} | Y: {point_3.y} | Color: {point_3.color}"); + + // Student + var firstStudent = GetStudent(); + Print(firstStudent); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e2e92c9 --- /dev/null +++ b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("730ede55-501d-4a60-b7e8-f6adc743159c")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/Student.cs b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/Student.cs new file mode 100644 index 0000000..05c924e --- /dev/null +++ b/LessonsAndTasks/Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса/Student.cs @@ -0,0 +1,19 @@ +using System; + +/// +/// *описали характеристики обьекта, шаблона этого класса +/// *главный плюс - можем вынести класс в отдельный файл - чтобы не городить код в одну кучу +/// *если лежит в том же namespace то можем видеть его, если нет то нужно внести using +/// +class Students +{ + /// + /// Cпециальная структура для описания объекта, создания уникальных id + /// + public Guid id; + public string firstName; + public string lastName; + public string middleName; + public int age; + public string group; +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/56_Lesson - Методы и классы, ООП, вызов метода экземпляра класса.csproj b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/56_Lesson - Методы и классы, ООП, вызов метода экземпляра класса.csproj new file mode 100644 index 0000000..c797525 --- /dev/null +++ b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/56_Lesson - Методы и классы, ООП, вызов метода экземпляра класса.csproj @@ -0,0 +1,56 @@ + + + + + Debug + AnyCPU + {E6B73F3E-92DD-4737-8FF8-A78B97CB387C} + Exe + Lesson_56___Методы_и_классы__ООП__вызов_метода_объекта_класса + Lesson 56 - Методы и классы, ООП, вызов метода объекта класса + v4.6.1 + 512 + true + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/App.config b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/App.config new file mode 100644 index 0000000..bae5d6d --- /dev/null +++ b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Car.cs b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Car.cs new file mode 100644 index 0000000..5f9ce04 --- /dev/null +++ b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Car.cs @@ -0,0 +1,34 @@ +using System; + +class Car +{ + private int speed = 0; + + /// + /// Пример инкапсуляции поля speed + /// + public void PrintSpeed() + { + if (speed == 0) + Console.WriteLine("Стоим на месте"); + if (speed > 0) + Console.WriteLine($"Едем вперед со скоростью {speed} км\\ч"); + if (speed < 0) + Console.WriteLine($"Едем назад со скоростью {-speed} км\\ч"); + } + + public void DriveForward() + { + speed = 60; + } + + public void Stop() + { + speed = 0; + } + + public void DriveBackward() + { + speed = -60; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Program.cs b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Program.cs new file mode 100644 index 0000000..ecbc469 --- /dev/null +++ b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Program.cs @@ -0,0 +1,48 @@ +using System; + +/* + * ООП + * методы объекта класса + */ + +class Program +{ + static Student GetStudent() + { + return new Student + { + id = Guid.NewGuid(), + firstName = "first", + lastName = "last", + middleName = "middle", + age = 24, + group = "professional" + }; + } + + /// + /// Функции и методы это одно и то же разница + /// Функция которая является членом класса это метод (функций без классов не может быть) + /// + static void Main() + { + var firstStudent = GetStudent(); + firstStudent.Print(); + string fullname = firstStudent.GetFullName(); + + Console.WriteLine("\t== Car 1 =="); + var car_1 = new Car(); + car_1.PrintSpeed(); + car_1.DriveForward(); + car_1.PrintSpeed(); + car_1.Stop(); + car_1.PrintSpeed(); + + Console.WriteLine("\t== Car 2 =="); + var car_2 = new Car(); + car_2.PrintSpeed(); + car_2.DriveBackward(); + car_2.PrintSpeed(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..32d73fa --- /dev/null +++ b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 56 - Методы и классы, ООП, вызов метода объекта класса")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 56 - Методы и классы, ООП, вызов метода объекта класса")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("e6b73f3e-92dd-4737-8ff8-a78b97cb387c")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Student.cs b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Student.cs new file mode 100644 index 0000000..13a975b --- /dev/null +++ b/LessonsAndTasks/Lesson 56 - Методы и классы, ООП, вызов метода объекта класса/Student.cs @@ -0,0 +1,26 @@ +using System; + +class Student +{ + /// + /// Cпециальная структура для описания объекта, создания уникальных id + /// + public Guid id; + public string firstName; + public string lastName; + public string middleName; + public int age; + public string group; + + public void Print() + { + Console.WriteLine($"id: {id}, \nfirstName: {firstName},\n" + + $"lastName: {lastName}, \nmiddleName: {middleName},\n" + + $"age: {age}, \ngroup: {group}"); + } + + public string GetFullName() + { + return $"{lastName} {firstName} {middleName}"; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/57_Lesson - Модификаторы доступа, public, protected, private.csproj b/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/57_Lesson - Модификаторы доступа, public, protected, private.csproj new file mode 100644 index 0000000..5eaab0e --- /dev/null +++ b/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/57_Lesson - Модификаторы доступа, public, protected, private.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {3378E01F-43A7-4F27-8944-2FF46C35C4F0} + Exe + Lesson_57___Модификаторы_доступа__public__protected__private + Lesson 57 - Модификаторы доступа, public, protected, private + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/App.config b/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/Program.cs b/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/Program.cs new file mode 100644 index 0000000..2fc55f6 --- /dev/null +++ b/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/Program.cs @@ -0,0 +1,57 @@ +using System; +using System.Reflection; + +/* + * модификаторы доступа public и private(используются для реализации инкапсуляции), для членов класса + */ +class Point +{ + /// + /// *по умолчанию private + /// + int z = 3; + + public int x = 1; + + private int y = 5; + + private void PrintX() + { + Console.WriteLine($"X: {x}"); + } + + public void PrintY() + { + Console.WriteLine($"Y: {y}"); + } + + public void PrintPoint() + { + PrintX(); + PrintY(); + } +} + +class Program +{ + static void Main() + { + Point point = new Point(); + + point.PrintY(); + point.x = 2; + point.PrintPoint(); + + // проверим то, что по умолчанию стоит private у поля используя рефлексию + var typeInfo = typeof(Point). + GetFields(BindingFlags.Instance + | BindingFlags.NonPublic + | BindingFlags.Public); + + foreach (var item in typeInfo) + { + Console.WriteLine($"{item.Name}\t isPrivate: {item.IsPrivate}\t isPublic: {item.IsPublic}"); + } + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0ca1ac1 --- /dev/null +++ b/LessonsAndTasks/Lesson 57 - Модификаторы доступа, public, protected, private/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 57 - Модификаторы доступа, public, protected, private")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 57 - Модификаторы доступа, public, protected, private")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("3378e01f-43a7-4f27-8944-2ff46c35c4f0")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/58_Lesson - ИНКАПСУЛЯЦИЯ, примеры.csproj b/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/58_Lesson - ИНКАПСУЛЯЦИЯ, примеры.csproj new file mode 100644 index 0000000..ad41257 --- /dev/null +++ b/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/58_Lesson - ИНКАПСУЛЯЦИЯ, примеры.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {2107BF8F-95A9-4A7A-9CB0-F676E59A887A} + Exe + Lesson_58___ИНКАПСУЛЯЦИЯ__примеры + Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/App.config b/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/Program.cs b/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/Program.cs new file mode 100644 index 0000000..4036a80 --- /dev/null +++ b/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/Program.cs @@ -0,0 +1,50 @@ +using System; + +/* + * Инкапсуляция + */ +class Gun +{ + /// + /// Cостояние + /// + private bool isLoaded; + + /// + /// Поведение + /// Инкапсуляция - скрываем состояние объекта - защищаем от внешнего мира + /// и даём возможность изменить состояние только с помощью этого же объекта + /// + /// Cпособ правильно организовать поведение(работу объекта через методы) + /// + private void Reload() + { + Console.WriteLine("Заряжаю..."); + + isLoaded = true; + + Console.WriteLine("Заряжено!"); + } + + public void Shot() + { + if (!isLoaded) + { + Console.WriteLine("Орудие не заряжено!"); + Reload(); + } + + Console.WriteLine("Пыщ - Пыщ!\n"); + isLoaded = false; + } +} + +class Program +{ + static void Main() + { + Gun gun = new Gun(); + gun.Shot(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c63d36c --- /dev/null +++ b/LessonsAndTasks/Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("2107bf8f-95a9-4a7a-9cb0-f676e59a887a")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/59_Lesson - Что такое конструктор класса, для чего, по умолчанию.csproj b/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/59_Lesson - Что такое конструктор класса, для чего, по умолчанию.csproj new file mode 100644 index 0000000..7284545 --- /dev/null +++ b/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/59_Lesson - Что такое конструктор класса, для чего, по умолчанию.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {90FB198E-A723-4127-B38F-6F3FE2180AED} + Exe + Lesson_59___Что_такое_конструктор_класса__для_чего__по_умолчанию + Lesson 59 - Что такое конструктор класса, для чего, по умолчанию + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/App.config b/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/Program.cs b/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/Program.cs new file mode 100644 index 0000000..4b6eb64 --- /dev/null +++ b/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/Program.cs @@ -0,0 +1,86 @@ +using System; + +/* + * конструктор класса - это специальный метод класса, который вызывается при создании объекта такого класса (new) + * + * конструктор по умолчанию + */ +class Point +{ + public Point(int x, int y) + { + _x = x; + _y = y; + } + + private int _x; + private int _y; + + public void Print() + { + Console.WriteLine($"X: {_x} \t Y: {_y}"); + } +} + +class Gun +{ + /// + /// конструктор без параметров + /// + /// ctor - конструктор по умолчанию + /// конструктор - тоже метод класса но только специальный, всегда public + /// можно выставить что сделать по умолчанию + /// + public Gun() + { + _isLoaded = true; + } + + /// + /// конструктор с параметрами + /// + /// # + public Gun(bool isLoaded) + { + this._isLoaded = isLoaded; + } + + private bool _isLoaded; + + /// + /// Поведение + /// + private void Reload() + { + Console.WriteLine("Заряжаю..."); + + _isLoaded = true; + + Console.WriteLine("Заряжено!"); + } + + public void Shot() + { + if (!_isLoaded) + { + Console.WriteLine("Орудие не заряжено!"); + Reload(); + } + + Console.WriteLine("Пыщ - Пыщ!\n"); + _isLoaded = false; + } +} + +class Program +{ + static void Main() + { + //new - конструктор по умолчанию (спец метод для создания объекта класса) + var gun = new Gun(isLoaded: true); + gun.Shot(); + Point point = new Point(1, 3); + point.Print(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..93a1f42 --- /dev/null +++ b/LessonsAndTasks/Lesson 59 - Что такое конструктор класса, для чего, по умолчанию/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 59 - Что такое конструктор класса, для чего, по умолчанию")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 59 - Что такое конструктор класса, для чего, по умолчанию")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("90fb198e-a723-4127-b38f-6f3fe2180aed")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse.sln b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse.sln new file mode 100644 index 0000000..3265c38 --- /dev/null +++ b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 6 - Конвертация строки parse и tryparse", "Lesson 6 - Конвертация строки parse и tryparse\Lesson 6 - Конвертация строки parse и tryparse.csproj", "{473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6B9503BD-B4C0-4268-AED4-672D68BB6537} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/06_Lesson - Конвертация строки parse и tryparse.csproj b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/06_Lesson - Конвертация строки parse и tryparse.csproj new file mode 100644 index 0000000..0cfacbd --- /dev/null +++ b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/06_Lesson - Конвертация строки parse и tryparse.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {473B7C29-AD6F-41A3-BBF5-7F0D1968BE42} + Exe + Lesson_6___Конвертация_строки_parse_и_tryparse + Lesson 6 - Конвертация строки parse и tryparse + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/App.config b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/Program.cs b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/Program.cs new file mode 100644 index 0000000..2a238f8 --- /dev/null +++ b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/Program.cs @@ -0,0 +1,45 @@ +using System; +using System.Globalization; + +/* + * конвертация строки + * parse и tryparse + */ +class Program +{ + static void Main() + { + string str = "5"; + string str1 = "5.2"; + int a = int.Parse(str); + NumberFormatInfo numberFormatInfo = new NumberFormatInfo + { + NumberDecimalSeparator = ".", + }; + double a1 = double.Parse(str1, numberFormatInfo); + + string teststr = "34.3oeskfso"; + try + { + int f = Convert.ToInt32(teststr); + int f1 = int.Parse(teststr); + Console.WriteLine($"Успешная конвертация: {f1}"); + } + catch(Exception) + { + Console.WriteLine($"Ошибка при конвертации: {teststr}"); + } + + string k = "2 авуыаыу ауыа"; + + int l; + + // TryParse - Возвращает булевый результат + // о том - распарсил он строку или нет + bool result = int.TryParse(k, out l); + // Out - данная переменная будет модифицирована внутри метода, + // инициализирована и возвращена наружу + Console.WriteLine(result ? $"Операция успешна, значение: {l}" : $"Не удалось конвертировать: {k}"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..954ec3b --- /dev/null +++ b/LessonsAndTasks/Lesson 6 - Конвертация строки parse и tryparse/Lesson 6 - Конвертация строки parse и tryparse/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 6 - Конвертация строки parse и tryparse")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 6 - Конвертация строки parse и tryparse")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("473b7c29-ad6f-41a3-bbf5-7f0d1968be42")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/60_Lesson - Перегрузка конструкторов класса, что это.csproj b/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/60_Lesson - Перегрузка конструкторов класса, что это.csproj new file mode 100644 index 0000000..ad404b8 --- /dev/null +++ b/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/60_Lesson - Перегрузка конструкторов класса, что это.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {0A6CE006-5DFA-4478-8ADC-3CA0F16CACBA} + Exe + Lesson_60___Перегрузка_конструкторов_класса__что_это + Lesson 60 - Перегрузка конструкторов класса, что это + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/App.config b/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/Program.cs b/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/Program.cs new file mode 100644 index 0000000..32015d0 --- /dev/null +++ b/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/Program.cs @@ -0,0 +1,99 @@ +using System; + +/* + * Перегрузка конструкторов класса + */ +class Student +{ + public Student(string lastName, DateTime birthday) + { + _lastName = lastName; + _birthday = birthday; + } + + public Student(string lastName, string firstName, string middleName, DateTime birthday) + { + _lastName = lastName; + _firstName = firstName; + _middleName = middleName; + _birthday = birthday; + } + + public Student(Student student) + { + _firstName = student._firstName; + _lastName = student._lastName; + _middleName = student._middleName; + _birthday = student._birthday; + } + + private string _firstName; + private string _middleName; + private string _lastName; + private DateTime _birthday; + + public void SetLastName(string lastName) => _lastName = lastName; + + public void Print() + { + Console.WriteLine($"Имя: " + _firstName + + $"\nФамилия: " + _lastName + + $"\nОтчество: " + _middleName + + $"\nДата рождения: " + _birthday); + } +} + +class Point +{ + /// + /// наличие более одного конструктора и есть перегрузка + /// + public Point() => _x = _y = 1; + + public Point(int x, int y) + { + _x = x; + _y = y; + } + + private int _x; + private int _y; + + public void Print() + { + Console.WriteLine($"X: {_x} \t Y: {_y}"); + } +} + +class Program +{ + static void Main() + { + Point point = new Point(); + point.Print(); + + Student student_1 = new Student("lastName", DateTime.Now); + + //оба студента - это ссылки в управляемой куче (особенность класса) + //мы копируем ссылку студента 1 в обьект студента 2 + Student student_2 = student_1; + + //чтобы избежать копирования ссылки мы используем конструктор создания класса + //тем самым конструируем новый объект + Student student_3 = new Student(student_1); + + student_1.SetLastName("#####"); + student_3.SetLastName("***"); + + student_1.Print(); + + Console.WriteLine(); + + student_2.Print(); + + Console.WriteLine(); + + student_3.Print(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..2279d14 --- /dev/null +++ b/LessonsAndTasks/Lesson 60 - Перегрузка конструкторов класса, что это/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 60 - Перегрузка конструкторов класса, что это")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 60 - Перегрузка конструкторов класса, что это")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("0a6ce006-5dfa-4478-8adc-3ca0f16cacba")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/61_Lesson - Ключевое слово this, this в конструкторе.csproj b/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/61_Lesson - Ключевое слово this, this в конструкторе.csproj new file mode 100644 index 0000000..9e877de --- /dev/null +++ b/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/61_Lesson - Ключевое слово this, this в конструкторе.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {A450AABD-15BC-433E-B9B9-9D91BF5F4BFA} + Exe + Lesson_61___Ключевое_слово_this__this_в_конструкторе + Lesson 61 - Ключевое слово this, this в конструкторе + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/App.config b/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/Program.cs b/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/Program.cs new file mode 100644 index 0000000..80a3a04 --- /dev/null +++ b/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/Program.cs @@ -0,0 +1,53 @@ +using System; + +/// +/// - this - можно получить доступ к текущему экземпляру класса +/// - применяет когда есть не однозначность в именах переменных конструктора и полей класса +/// +class Student +{ + public Student(string lastName, DateTime birthday) + { + this.lastName = lastName; + this.birthday = birthday; + } + + public Student(string lastName, string firstName, string middleName, DateTime birthday) : this(lastName, birthday) + { + this.firstName = firstName; + this.middleName = middleName; + } + + public Student(Student student) + { + firstName = student.firstName; + lastName = student.lastName; + middleName = student.middleName; + birthday = student.birthday; + } + + private string firstName; + private string middleName; + private string lastName; + private DateTime birthday; + + public void SetLastName(string lastName) => this.lastName = lastName; + + public void Print() + { + Console.WriteLine($"Имя: " + firstName + + $"\nФамилия: " + lastName + + $"\nОтчество: " + middleName + + $"\nДата рождения: " + birthday); + } +} + +class Program +{ + static void Main() + { + Student student_1 = new Student("Qumo", new DateTime(2000, 10, 5)); + student_1.Print(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b869133 --- /dev/null +++ b/LessonsAndTasks/Lesson 61 - Ключевое слово this, this в конструкторе/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 61 - Ключевое слово this, this в конструкторе")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 61 - Ключевое слово this, this в конструкторе")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("a450aabd-15bc-433e-b9b9-9d91bf5f4bfa")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/62_Lesson - Свойства get, set ключевое слово value, авто-свойства.csproj b/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/62_Lesson - Свойства get, set ключевое слово value, авто-свойства.csproj new file mode 100644 index 0000000..787ef6b --- /dev/null +++ b/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/62_Lesson - Свойства get, set ключевое слово value, авто-свойства.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {D32F4616-1733-4491-81C6-D77F975DF171} + Exe + Lesson_62___Свойства_get__set_ключевое_слово_value__авто_свойства + Lesson 62 - Свойства get, set ключевое слово value, авто-свойства + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/App.config b/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/Program.cs b/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/Program.cs new file mode 100644 index 0000000..ee304a0 --- /dev/null +++ b/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/Program.cs @@ -0,0 +1,24 @@ +using System; + +/* + * Сыойства (Properties) + * + * Автоматические свойства (prop) + */ +class Point +{ + private int x; + public void SetX(int x) => this.x = x; + public int GetX() => x; +} + +class Program +{ + static void Main() + { + Point point = new Point(); + point.SetX(5); + Console.WriteLine(point.GetX()); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7987eff --- /dev/null +++ b/LessonsAndTasks/Lesson 62 - Свойства get, set ключевое слово value, авто-свойства/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 62 - Свойства get, set ключевое слово value, авто-свойства")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 62 - Свойства get, set ключевое слово value, авто-свойства")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("d32f4616-1733-4491-81c6-d77f975df171")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/App.config b/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/Lesson 62 - Свойства get, set, ключевое слово value.csproj b/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/Lesson 62 - Свойства get, set, ключевое слово value.csproj new file mode 100644 index 0000000..b239344 --- /dev/null +++ b/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/Lesson 62 - Свойства get, set, ключевое слово value.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {50B48D1C-0ED4-4937-A570-D4B491FE1AA8} + Exe + Lesson_62___Свойства_get__set__ключевое_слово_value + Lesson 62 - Свойства get, set, ключевое слово value + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/Program.cs b/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/Program.cs new file mode 100644 index 0000000..2f4e00e --- /dev/null +++ b/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/Program.cs @@ -0,0 +1,89 @@ +using System; + +/* + * Свойства (Parametries) + * + * Автоматические свойства + */ + +namespace Lesson_62___Свойства_get__set__ключевое_слово_value +{ + class Point + { + private int x; + + public void SetX(int x) + { + //this.x = x; + if(x < 1) + { + this.x = 1; + return; + } + if(x > 5) + { + this.x = 5; + return; + } + + this.x = x; + } + + public int GetX() + { + return x; + } + + //propfull - сниппет + private int y; + + //get и set - это аксессоры (accessor) + public int Y + { + get + { + return y; + } + set //(тут работают public set private) + { + if(value < 1) + { + y = 1; + return; + } + if(value > 5) + { + y = 5; + return; + } + + y = value; + } + } + + private int z; + + public int Z + { + get { return z; } + set { z = value; } + } + + //автоматическое свойство - prop + public int Z_auto { get; set; } + } + + class Program + { + static void Main(string[] args) + { + Point point = new Point(); + point.SetX(21); + Console.WriteLine(point.GetX()); + point.Y = 10; + Console.WriteLine(point.Y); + point.Z_auto = 12; + Console.WriteLine(point.Z_auto); + } + } +} diff --git a/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4c084fa --- /dev/null +++ b/LessonsAndTasks/Lesson 62 - Свойства get, set, ключевое слово value/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 62 - Свойства get, set, ключевое слово value")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 62 - Свойства get, set, ключевое слово value")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("50b48d1c-0ed4-4937-a570-d4b491fe1aa8")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/63_Lesson - Статические поля класса, ключевое слово static.csproj b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/63_Lesson - Статические поля класса, ключевое слово static.csproj new file mode 100644 index 0000000..ef4b564 --- /dev/null +++ b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/63_Lesson - Статические поля класса, ключевое слово static.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {CAD89597-A781-491C-9B95-0C2D6DA3C70B} + Exe + Lesson_63___Статические_поля_класса__ключевое_слово_static + Lesson 63 - Статические поля класса, ключевое слово static + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/App.config b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/ClassDiagram1.cd b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/ClassDiagram1.cd new file mode 100644 index 0000000..7b89419 --- /dev/null +++ b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/ClassDiagram1.cd @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/Program.cs b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/Program.cs new file mode 100644 index 0000000..5e80784 --- /dev/null +++ b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/Program.cs @@ -0,0 +1,41 @@ +using System; + +/* + * Cлючевое слово static + * + * Статические поля класса (к полям, методам, свойствам, классам, конструкторам класса) + */ +class MyClass +{ + public int a; + + /// + /// static - память которая выделяется доступна для всех объектов myclass + /// общая для всех экземпляров класса + /// + public static int b; + + private static int g; + + public void SetG(int g) => MyClass.g = g; + + public void PrintG() => Console.WriteLine(g); +} + +class Program +{ + static void Main() + { + MyClass.b = 4; + + MyClass myClass1 = new MyClass(); + myClass1.a = 22; + + MyClass myClass2 = new MyClass(); + myClass2.a = 44; + + myClass1.SetG(1); + myClass2.PrintG(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bb0ba20 --- /dev/null +++ b/LessonsAndTasks/Lesson 63 - Статические поля класса, ключевое слово static/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 63 - Статические поля класса, ключевое слово static")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 63 - Статические поля класса, ключевое слово static")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("cad89597-a781-491c-9b95-0c2d6da3c70b")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/64_Lesson - Статические методы, свойства, работа static.csproj b/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/64_Lesson - Статические методы, свойства, работа static.csproj new file mode 100644 index 0000000..23a76be --- /dev/null +++ b/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/64_Lesson - Статические методы, свойства, работа static.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {C203E2FB-EEB4-4496-9BC2-2951920CDD56} + Exe + Lesson_64___Статические_методы__свойства__работа_static + Lesson 64 - Статические методы, свойства, работа static + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/App.config b/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/Program.cs b/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/Program.cs new file mode 100644 index 0000000..fdeca41 --- /dev/null +++ b/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/Program.cs @@ -0,0 +1,81 @@ +using System; + +/* + * Ключесвое слово static + * + * Статические методы класса + * + * Статические свойства класса + */ +class Numb +{ + public Numb() => Counter++; + + private static int counter; + + public static int Counter + { + get { return counter; } + private set { counter = value; } + } + + public int ObjectsCount => counter; + + public static int GetCounter() => counter; + + public int GetObjectsCount() => counter; +} + +class MyClass_1 +{ + private static int a; + + private int b; + + public static void Foo() + { + Console.WriteLine("Вызван метод Foo()"); + a = 5; + Console.WriteLine(a); + } + + public void Bar() + { + Console.WriteLine("Вызван метод Bar()"); + Console.WriteLine(a); + Foo(); + } + + private static int c; + + public static int C + { + get { return c; } + set { c = value; } + } + + public static int D { get; set; } + +} + +class Program +{ + static void Main() + { + //Полиморфизм требует создание объекта класса и вызова метода на уровне экземпляра + MyClass_1 myClass = new MyClass_1(); + myClass.Bar(); + MyClass_1.Foo();// - статические методы недоступны на уровне экземпляра класса + MyClass_1.C = 3; + MyClass_1.D = 2; + + Numb numb = new Numb(); + Numb numb1 = new Numb(); + Numb numb2 = new Numb(); + Console.WriteLine(numb2.GetObjectsCount()); + Console.WriteLine(numb2.ObjectsCount); + Console.WriteLine(Numb.Counter); + Console.WriteLine(Numb.GetCounter()); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..45e9dc6 --- /dev/null +++ b/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 64 - Статические методы, свойства, работа static")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 64 - Статические методы, свойства, работа static")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("c203e2fb-eeb4-4496-9bc2-2951920cdd56")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/65_Lesson - Статический конструктор, как работает ключ. слово static.csproj b/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/65_Lesson - Статический конструктор, как работает ключ. слово static.csproj new file mode 100644 index 0000000..ee0b8c6 --- /dev/null +++ b/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/65_Lesson - Статический конструктор, как работает ключ. слово static.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {FDD50EA7-65F8-459D-9266-51E229757B78} + Exe + Lesson_65___Статический_конструктор__как_работает_ключ.слово_static + Lesson_65___Статический_конструктор__как_работает_ключ.слово_static + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/App.config b/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/Program.cs b/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/Program.cs new file mode 100644 index 0000000..1ddf4ad --- /dev/null +++ b/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/Program.cs @@ -0,0 +1,65 @@ +using System; + +/* + * Ключевое слово static + * + * Статический конструктор + */ + +class DbRepository +{ + private static string connectString; + + static DbRepository() //один раз срабатывает после старта программы + { + ConfigurationManager configurationManager = new ConfigurationManager(); + connectString = configurationManager.GetConnectionString(); + } + + public void GetData() => Console.WriteLine($"Использую: {connectString}"); +} + +class ConfigurationManager +{ + public string GetConnectionString() => "localDB"; +} + +class Terro +{ + public Terro() => Console.WriteLine("Конструктор"); + + public Terro(int a) => Console.WriteLine("Конструктор new a"); + + /// + /// Модификаторы доступа вообще не используются + /// Может быть только один статический конструктор в классе + /// Нельзя использовать перегрузку + /// Не может принимать параметров + /// Выполняется только один раз + /// + static Terro() => Console.WriteLine("Статический конструктор"); + + public static int g; + + public static void Foo() + { + Console.WriteLine("Foo"); + g = 2; + } +} + +class Program +{ + static void Main() + { + Terro.Foo(); + Terro terro = new Terro(); + new Terro(); + new Terro(); + new Terro(); + + var dbRepository = new DbRepository(); + dbRepository.GetData(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6087f7b --- /dev/null +++ b/LessonsAndTasks/Lesson 65 - Статический конструктор, как работает ключ. слово static/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 65 - Статический конструктор, как работает ключ. слово static")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 65 - Статический конструктор, как работает ключ. слово static")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("fdd50ea7-65f8-459d-9266-51e229757b78")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 66 - Статический класс/66_Lesson - Статический класс.csproj b/LessonsAndTasks/Lesson 66 - Статический класс/66_Lesson - Статический класс.csproj new file mode 100644 index 0000000..7bde47b --- /dev/null +++ b/LessonsAndTasks/Lesson 66 - Статический класс/66_Lesson - Статический класс.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {78912F30-35BD-411C-8CA9-49A2A3726745} + Exe + Lesson_66___Статический_класс + Lesson 66 - Статический класс + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 66 - Статический класс/App.config b/LessonsAndTasks/Lesson 66 - Статический класс/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 66 - Статический класс/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 66 - Статический класс/Program.cs b/LessonsAndTasks/Lesson 66 - Статический класс/Program.cs new file mode 100644 index 0000000..5a7681e --- /dev/null +++ b/LessonsAndTasks/Lesson 66 - Статический класс/Program.cs @@ -0,0 +1,20 @@ +using System; + +/* + * Ключевое слово static + * + * Статический класс + */ +static class Herro +{ + public static void Foo() => Console.WriteLine("Вызвал Foo()"); +} + +class Program +{ + static void Main() + { + Herro.Foo(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 66 - Статический класс/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 66 - Статический класс/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1eeec6e --- /dev/null +++ b/LessonsAndTasks/Lesson 66 - Статический класс/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 66 - Статический класс")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 66 - Статический класс")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("78912f30-35bd-411c-8ca9-49a2a3726745")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 67 - Методы расширения, extension/67_Lesson - Методы расширения, extension.csproj b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/67_Lesson - Методы расширения, extension.csproj new file mode 100644 index 0000000..3fa55e0 --- /dev/null +++ b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/67_Lesson - Методы расширения, extension.csproj @@ -0,0 +1,55 @@ + + + + + Debug + AnyCPU + {885DA3AA-3B3C-43EC-823D-A0B73D359B6A} + Exe + Lesson_67___Методы_расширения__extension + Lesson 67 - Методы расширения, extension + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 67 - Методы расширения, extension/App.config b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 67 - Методы расширения, extension/MyExtensions.cs b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/MyExtensions.cs new file mode 100644 index 0000000..42fef51 --- /dev/null +++ b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/MyExtensions.cs @@ -0,0 +1,23 @@ +using System; +using Students; + +namespace Extension +{ + static class MyExtensions + { + public static void Print(this DateTime dateTime) + { + Console.WriteLine($"{dateTime.Day} {dateTime.Month} {dateTime.Year}"); + } + + public static bool IsDayOfWeek(this DateTime dateTime, DayOfWeek dayOfWeek) + { + return dateTime.DayOfWeek == dayOfWeek; + } + + public static string GetFullName(this Student student) + { + return student.LastName + " " + student.FirstName; + } + } +} diff --git a/LessonsAndTasks/Lesson 67 - Методы расширения, extension/Program.cs b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/Program.cs new file mode 100644 index 0000000..0cb0de4 --- /dev/null +++ b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/Program.cs @@ -0,0 +1,19 @@ +using System; +using Extension; +using Students; + +/* + * Extension методы (метод расширения) (расширяющие методы) + */ +class Program +{ + static void Main() + { + DateTime currentDateTime = DateTime.Now; + currentDateTime.Print(); + Console.WriteLine(currentDateTime.IsDayOfWeek(DayOfWeek.Monday)); + Student student = new Student() { FirstName = "Джим", LastName = "Керри" }; + Console.WriteLine(student.GetFullName()); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 67 - Методы расширения, extension/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5a0473b --- /dev/null +++ b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 67 - Методы расширения, extension")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 67 - Методы расширения, extension")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("885da3aa-3b3c-43ec-823d-a0b73d359b6a")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 67 - Методы расширения, extension/Student.cs b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/Student.cs new file mode 100644 index 0000000..6977202 --- /dev/null +++ b/LessonsAndTasks/Lesson 67 - Методы расширения, extension/Student.cs @@ -0,0 +1,11 @@ +namespace Students +{ + /// + /// Не можем унаследоваться от этого класса - sealed + /// + sealed class Student + { + public string FirstName { get; set; } + public string LastName { get; set; } + } +} diff --git a/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/68_Lesson - partial класс, частичные типы, partial методы.csproj b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/68_Lesson - partial класс, частичные типы, partial методы.csproj new file mode 100644 index 0000000..fe38f89 --- /dev/null +++ b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/68_Lesson - partial класс, частичные типы, partial методы.csproj @@ -0,0 +1,55 @@ + + + + + Debug + AnyCPU + {A3011C15-258D-4A62-B01B-91EFEEA9C936} + Exe + Lesson_68___partial_класс__частичные_типы__partial_методы + Lesson 68 - partial класс, частичные типы, partial методы + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/App.config b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/Person.cs b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/Person.cs new file mode 100644 index 0000000..9edfca2 --- /dev/null +++ b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/Person.cs @@ -0,0 +1,11 @@ +partial class Person +{ + public string FirstName { get; set; } + public string LastName { get; set; } + + public Person(string firstName, string lastName) + { + FirstName = firstName; + LastName = lastName; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/PersonMethods.cs b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/PersonMethods.cs new file mode 100644 index 0000000..0e282e4 --- /dev/null +++ b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/PersonMethods.cs @@ -0,0 +1,12 @@ +partial class Person +{ + public string GetFullName() + { + return FirstName + " " + LastName; + } + + public void PrintFullName() // partial + { + System.Console.WriteLine(GetFullName()); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/Program.cs b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/Program.cs new file mode 100644 index 0000000..dba009a --- /dev/null +++ b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/Program.cs @@ -0,0 +1,20 @@ +/* + * Частичные типы + * + * partial классы (паршиал) + * + * partial методы + */ +using System; +/// +/// Позволяет код класса произнести в разных файлах (класс превращается в частичный) +/// +class Program +{ + static void Main() + { + Person person = new Person("Джим", "Керри"); + person.PrintFullName(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a9a9a56 --- /dev/null +++ b/LessonsAndTasks/Lesson 68 - partial класс, частичные типы, partial методы/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 68 - partial класс, частичные типы, partial методы")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 68 - partial класс, частичные типы, partial методы")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("a3011c15-258d-4a62-b01b-91efeea9c936")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 69 - const vs readonly - разница между ними(const и static)/69_Lesson - const vs readonly - разница между ними(const и static).csproj b/LessonsAndTasks/Lesson 69 - const vs readonly - разница между ними(const и static)/69_Lesson - const vs readonly - разница между ними(const и static).csproj new file mode 100644 index 0000000..95e34f1 --- /dev/null +++ b/LessonsAndTasks/Lesson 69 - const vs readonly - разница между ними(const и static)/69_Lesson - const vs readonly - разница между ними(const и static).csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_69___const_vs_readonly___разница_между_ними_const_и_static__ + + + diff --git a/LessonsAndTasks/Lesson 69 - const vs readonly - разница между ними(const и static)/Program.cs b/LessonsAndTasks/Lesson 69 - const vs readonly - разница между ними(const и static)/Program.cs new file mode 100644 index 0000000..e0cbf3c --- /dev/null +++ b/LessonsAndTasks/Lesson 69 - const vs readonly - разница между ними(const и static)/Program.cs @@ -0,0 +1,122 @@ +using System; + +/* + * const и readonly + */ +class MyLogger +{ + public void Info(string message) + { + Console.WriteLine($"{DateTime.Now}\t|INFO|\t{message}"); + } + + public void Error(string message) + { + Console.WriteLine($"{DateTime.Now}\t|ERROR|\t{message}"); + } + + public void Warn(string message) + { + Console.WriteLine($"{DateTime.Now}\t|WARN|\t{message}"); + } +} + +class Car +{ + private const string ENGINE_IS_STARTED_MESSAGE = "Двигатель запущен!"; + private const string ATTEMPT_TO_START_ENGINE_MESSAGE = "Завожу двигатель!"; + private const string ENGINE_HAS_ALREADY_STARTED_MESSAGE = "Лапоть, двигатель уже запущен!"; + private const string ATTEMPT_TO_DRIVE_MESSAGE = "Тапку в пол!"; + private const string DRIVE_MESSAGE = "Поехали"; + private const string DRIVE_ERROR_MESSAGE = "Лапоть, сначала заведи двигатель"; + + /// + /// Это некий сервис который мы не будем менять + /// использует класс Car под свои нужды + /// + private readonly MyLogger _myLogger; + + private bool isEngineStarted; + + public Car(MyLogger myLogger) + { + _myLogger = myLogger; + } + + public void StartEngine() + { + _myLogger.Info(ATTEMPT_TO_START_ENGINE_MESSAGE); + if (isEngineStarted) + { + _myLogger.Warn(ENGINE_HAS_ALREADY_STARTED_MESSAGE); + } + else + { + isEngineStarted = true; + _myLogger.Info(ENGINE_IS_STARTED_MESSAGE); + } + } + + public void Drive() + { + _myLogger.Info(ATTEMPT_TO_DRIVE_MESSAGE); + if (isEngineStarted) + _myLogger.Info(DRIVE_MESSAGE); + else + _myLogger.Error(DRIVE_ERROR_MESSAGE); + } +} + +class ConstReadonly +{ + /// + /// const(не явно становится static) + /// всегда должны помещать туда данные + /// не изменяемое + /// удобно для хранения сообщения об ошибках + /// все константы - большими буквами + /// позволяет избежать эффекта -магических чисел- + /// + public const double PI = 3.14; + public const string MY_ERROR = "some error"; + + /// + /// readonly(НЕ static) + /// изменяется только в конструкторе + /// + public readonly int _g = 1; + /// + /// можно сделать явно статическим + /// можно использовать и менять только в статическом конструкторе + /// + public static readonly int _gg = 2; + + static ConstReadonly() => _gg = 43; + + public ConstReadonly(int g) => _g = g; + + public void Foo() + { + Console.WriteLine(PI); + Console.WriteLine(MY_ERROR); + Console.WriteLine(_g); + Console.WriteLine(_gg); + } +} + +class Program +{ + static void Main() + { + Console.WriteLine(ConstReadonly._gg); + Console.WriteLine(ConstReadonly.MY_ERROR); + Console.WriteLine(ConstReadonly.PI); + + Car car = new Car(new MyLogger()); + car.Drive(); + car.StartEngine(); + car.StartEngine(); + car.Drive(); + Console.ReadKey(); + } +} diff --git a/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль.sln b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль.sln new file mode 100644 index 0000000..08257bb --- /dev/null +++ b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 7 - Что делать если закрывается консоль", "Lesson 7 - Что делать если закрывается консоль\Lesson 7 - Что делать если закрывается консоль.csproj", "{29C3ECAE-8577-4D90-9DED-7F15E6760865}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {29C3ECAE-8577-4D90-9DED-7F15E6760865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29C3ECAE-8577-4D90-9DED-7F15E6760865}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29C3ECAE-8577-4D90-9DED-7F15E6760865}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29C3ECAE-8577-4D90-9DED-7F15E6760865}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {56FEEB6F-6459-487C-ABF5-6B2ABC0BD0D6} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/07_Lesson - Что делать если закрывается консоль.csproj b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/07_Lesson - Что делать если закрывается консоль.csproj new file mode 100644 index 0000000..3b1d0b7 --- /dev/null +++ b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/07_Lesson - Что делать если закрывается консоль.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {29C3ECAE-8577-4D90-9DED-7F15E6760865} + Exe + Lesson_7___Что_делать_если_закрывается_консоль + Lesson 7 - Что делать если закрывается консоль + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/App.config b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/Program.cs b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/Program.cs new file mode 100644 index 0000000..97b2203 --- /dev/null +++ b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/Program.cs @@ -0,0 +1,13 @@ +using System; + +/* + * Что делать если закрывается консоль? + */ +class Program +{ + static void Main() + { + Console.WriteLine("Консоль закрывается! =)"); + Console.ReadLine(); // Console.Read() || Console.ReadKey() + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..96b6ed3 --- /dev/null +++ b/LessonsAndTasks/Lesson 7 - Что делать если закрывается консоль/Lesson 7 - Что делать если закрывается консоль/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 7 - Что делать если закрывается консоль")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 7 - Что делать если закрывается консоль")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("29c3ecae-8577-4d90-9ded-7f15e6760865")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/70_Lesson - синтаксис инициализации объектов класса.csproj b/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/70_Lesson - синтаксис инициализации объектов класса.csproj new file mode 100644 index 0000000..daa1229 --- /dev/null +++ b/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/70_Lesson - синтаксис инициализации объектов класса.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_70___синтаксис_инициализации_объектов_класса_ + + + diff --git a/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/Address.cs b/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/Address.cs new file mode 100644 index 0000000..0a0a72b --- /dev/null +++ b/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/Address.cs @@ -0,0 +1,6 @@ +class Address +{ + public string Country { get; set; } + public string Region { get; set; } + public string City { get; set; } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/Person.cs b/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/Person.cs new file mode 100644 index 0000000..1d08755 --- /dev/null +++ b/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/Person.cs @@ -0,0 +1,10 @@ +class Person +{ + public string FirstName { get; set; } + public string LastName { get; set; } + public Address Address { get; set; } + public override string ToString() + { + return $"FirstName: {FirstName}, LastName: {LastName} "; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/Program.cs b/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/Program.cs new file mode 100644 index 0000000..d55e80a --- /dev/null +++ b/LessonsAndTasks/Lesson 70 - синтаксис инициализации объектов класса/Program.cs @@ -0,0 +1,59 @@ +using System; + +/* + * синтаксиси инициализации объектов - процесс создания экземпляра объекта класса + */ +class Cat +{ + public int Age { get; set; } + public string Name { get; set; } + + public Cat() { } + + public Cat(string name) => Name = name; +} + +class Program +{ + static void Main() + { + Cat cat_1 = new Cat("Барсик"); + Console.WriteLine(cat_1.Name); + Cat cat_2 = new Cat(); + cat_2.Name = "Барс"; + cat_2.Age = 3; + var cat_3 = new Cat // альтернативная инициализация объекта + { + Name = "Жмур", + Age = 4 + }; + // Для понимания зачем использовать альтернативную инициализацию + var person1 = new Person(); + person1.FirstName = "Ранд"; + person1.LastName = "ал'Тор"; + + var address = new Address(); + address.Country = "Andor"; + address.Region = "Dvurech"; + address.City = "Lug"; + + person1.Address = address; + + // Выше читаемость кода + var person2 = new Person + { + FirstName = "Ранд", + LastName = "ал'Тор", + Address = new Address + { + City = "Lug", + Region = "Dvurech", + Country = "Andor" + } + }; + + Console.WriteLine(person1.ToString()); + Console.WriteLine(person2.ToString()); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/71_Lesson - НАСЛЕДОВАНИЕ.csproj b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/71_Lesson - НАСЛЕДОВАНИЕ.csproj new file mode 100644 index 0000000..86b9d78 --- /dev/null +++ b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/71_Lesson - НАСЛЕДОВАНИЕ.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_71___НАСЛЕДОВАНИЕ_ + + + diff --git a/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/ClassDiagram1.cd b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/ClassDiagram1.cd new file mode 100644 index 0000000..172c71c --- /dev/null +++ b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/ClassDiagram1.cd @@ -0,0 +1,39 @@ + + + + + + AAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Empoloyee.cs + + + + + + AAAAAEAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAg= + LP.cs + + + + + + AAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Security.cs + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAA= + Student.cs + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAA= + Teacher.cs + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Empoloyee.cs b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Empoloyee.cs new file mode 100644 index 0000000..9c9687b --- /dev/null +++ b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Empoloyee.cs @@ -0,0 +1,4 @@ +class Empoloyee : LP +{ + public decimal Salary { get; set; } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/LP.cs b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/LP.cs new file mode 100644 index 0000000..2229915 --- /dev/null +++ b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/LP.cs @@ -0,0 +1,12 @@ +using System; + +class LP +{ + public string FirstName { get; set; } + public string LastName { get; set; } + + public void PrintFullName() + { + Console.WriteLine($"Name: {FirstName}, LastName: {LastName}"); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Program.cs b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Program.cs new file mode 100644 index 0000000..0031950 --- /dev/null +++ b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Program.cs @@ -0,0 +1,82 @@ +using System; + +class Kraft +{ + public string FirstName { get; set; } + public string LastName { get; set; } + + public void PrintName() => Console.WriteLine($"Name: {FirstName}"); +} + +/// +/// Выполнено наследование +/// все свойства, методы и поля унаследованы +/// +class Ivuc : Kraft +{ + public void PrintLastName() => Console.WriteLine($"LastName: {LastName}"); +} + +/// +/// наследование в Объектно-ориентированном программировании (ООП) +/// позволяет избежать ненужного дублирования кода +/// позволяет реализовать полиморфизм +/// множественного наследования в C# нет (для классов) +/// +class Program +{ + static void Main() + { + var kraft = new Kraft + { + FirstName = "terry", + LastName = "lamos" + }; + kraft.PrintName(); + + var ivuc = new Ivuc + { + FirstName = "terry", + LastName = "lamos" + }; + + ivuc.PrintName(); + ivuc.PrintLastName(); + + // Можно при инициализацими экземпляра класса, инициализировать его наследника + // Тем самым, это помогает в работе старого функционала - он может работать и с наследниками + var kraft_ivuc = new Ivuc + { + FirstName = "terry", + LastName = "lamos" + }; + PrintFullName(kraft_ivuc); + + var teacher = new Teacher + { + FirstName = "John", + LastName = "Karter" + }; + + var student = new Student + { + FirstName = "Garry", + LastName = "Astos" + }; + + LP[] people = { teacher, student }; + PrintLP(people); + Console.ReadKey(); + } + + static void PrintFullName(Kraft kraft) + { + Console.WriteLine($"Name: {kraft.FirstName} LastName: {kraft.LastName}"); + } + + static void PrintLP(LP[] persons) + { + foreach (var person in persons) + person.PrintFullName(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Security.cs b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Security.cs new file mode 100644 index 0000000..5ce9a8e --- /dev/null +++ b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Security.cs @@ -0,0 +1,6 @@ +using System; + +class Security : Empoloyee +{ + public void Guard() => Console.WriteLine("I'am guarding"); +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Student.cs b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Student.cs new file mode 100644 index 0000000..06602df --- /dev/null +++ b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Student.cs @@ -0,0 +1,6 @@ +using System; + +class Student : LP +{ + public void Learn() => Console.WriteLine("I'm learning"); +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Teacher.cs b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Teacher.cs new file mode 100644 index 0000000..1ac9049 --- /dev/null +++ b/LessonsAndTasks/Lesson 71 - НАСЛЕДОВАНИЕ/Teacher.cs @@ -0,0 +1,6 @@ +using System; + +class Teacher : Empoloyee +{ + public void Teach() => Console.WriteLine("I'am teaching"); +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 72 - Ключевое слово base, наследование и конструктор класса/72_Lesson - Ключевое слово base, наследование и конструктор класса.csproj b/LessonsAndTasks/Lesson 72 - Ключевое слово base, наследование и конструктор класса/72_Lesson - Ключевое слово base, наследование и конструктор класса.csproj new file mode 100644 index 0000000..9ebb00c --- /dev/null +++ b/LessonsAndTasks/Lesson 72 - Ключевое слово base, наследование и конструктор класса/72_Lesson - Ключевое слово base, наследование и конструктор класса.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_72___Ключевое_слово_base__наследование_и_конструктор_класса_ + + + diff --git a/LessonsAndTasks/Lesson 72 - Ключевое слово base, наследование и конструктор класса/Program.cs b/LessonsAndTasks/Lesson 72 - Ключевое слово base, наследование и конструктор класса/Program.cs new file mode 100644 index 0000000..d86cb02 --- /dev/null +++ b/LessonsAndTasks/Lesson 72 - Ключевое слово base, наследование и конструктор класса/Program.cs @@ -0,0 +1,59 @@ +using System; + +/* + * наследование, конструкторы класса и ключевое слово base + */ +class Point2D +{ + public Point2D(int x, int y) + { + X = x; + Y = y; + Console.WriteLine("Point2D"); + } + + public int X { get; set; } + public int Y { get; set; } + + public void Print() + { + Console.WriteLine($"X:\t{X}"); + Console.WriteLine($"Y:\t{Y}"); + } +} + +class Point3D : Point2D +{ + /// + /// base - позволяет нам явно указать что мы хотим использовать (нечто) из базового класса + /// при использовании ключевого слова base мы можем явно указать какой конструктор у базоваого класса используем + /// + /// # + /// # + /// # + public Point3D(int x, int y, int z) : base(x, y) + { + Z = z; + Console.WriteLine("Point3D"); + } + public int Z { get; set; } + + public new void Print() + { + base.Print(); // аналог слова this (решающее неоднозначность) + Console.WriteLine($"Z:\t{Z}"); + } +} + +class Program +{ + static void Main() + { + //прежде чем создается класс конструктором - создаются все его предки + var point3D = new Point3D(1, 2, 3); + point3D.Print(); + var point2D = new Point2D(1, 2); + point2D.Print(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 73 - Операторы as is, наследование и приведение типов/73_Lesson - Операторы as is, наследование и приведение типов.csproj b/LessonsAndTasks/Lesson 73 - Операторы as is, наследование и приведение типов/73_Lesson - Операторы as is, наследование и приведение типов.csproj new file mode 100644 index 0000000..427e05a --- /dev/null +++ b/LessonsAndTasks/Lesson 73 - Операторы as is, наследование и приведение типов/73_Lesson - Операторы as is, наследование и приведение типов.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_73___Операторы_as_is__наследование_и_приведение_типов_ + + + diff --git a/LessonsAndTasks/Lesson 73 - Операторы as is, наследование и приведение типов/Program.cs b/LessonsAndTasks/Lesson 73 - Операторы as is, наследование и приведение типов/Program.cs new file mode 100644 index 0000000..9f93160 --- /dev/null +++ b/LessonsAndTasks/Lesson 73 - Операторы as is, наследование и приведение типов/Program.cs @@ -0,0 +1,55 @@ +using System; + +/* + * приведение типов и наследование + * + * использование операторов as и is + */ +class BasePoint +{ + // +} + +/// +/// *Все типы данных неявно унаследованы от типа Object +/// +class Point : BasePoint +{ + public int X { get; set; } + public int Y { get; set; } + + public void Print() + { + Console.WriteLine($"X:\t{X}"); + Console.WriteLine($"Y:\t{Y}"); + } +} + +class Program +{ + static void Main() + { + // ссылка базового класса может хранить любой тип наследников + object obj = new Point { X = 5, Y = 2 }; + + var point = (Point)obj; // приведение object к Point + point.Print(); + + Foo(obj); + Bar(obj); + Console.ReadKey(); + } + + static void Foo(object obj) + { + var point = obj as Point; // as - проверяет исключение при приведении типов + point?.Print(); + } + + static void Bar(object obj) + { + // is - позволяет сразу поместить данные в объект если прошел проверку + if (obj is Point point) + point.Print(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 74 - protected - модификатор доступа/74_Lesson - protected - модификатор доступа.csproj b/LessonsAndTasks/Lesson 74 - protected - модификатор доступа/74_Lesson - protected - модификатор доступа.csproj new file mode 100644 index 0000000..0c76aee --- /dev/null +++ b/LessonsAndTasks/Lesson 74 - protected - модификатор доступа/74_Lesson - protected - модификатор доступа.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_74___protected___модификатор_доступа_ + + + diff --git a/LessonsAndTasks/Lesson 74 - protected - модификатор доступа/Program.cs b/LessonsAndTasks/Lesson 74 - protected - модификатор доступа/Program.cs new file mode 100644 index 0000000..21c3115 --- /dev/null +++ b/LessonsAndTasks/Lesson 74 - protected - модификатор доступа/Program.cs @@ -0,0 +1,69 @@ +using System; + +/* + * модификатор доступа protected при наследовании + */ +class Program +{ + public class A + { + public A() + { + Console.WriteLine("A"); + Console.WriteLine(publicField); // поле доступно + Console.WriteLine(protectedField); // поле доступно + Console.WriteLine(privateField); // поле доступно + } + + public void Bar() + { + Console.WriteLine("Bar"); + Console.WriteLine(publicField); // поле доступно + Console.WriteLine(protectedField); // поле доступно + Console.WriteLine(privateField); // поле доступно + } + + public int publicField = 4; + private int privateField = 5; + /// + /// protected - работает со всем одинаково(свойства, поля, методы) + /// protected - внутри класса доступны, снаружи класса не доступны (разница в наследовании) + /// + protected int protectedField = 6; + private protected int privateprotectedField = 7; + + protected void Foo() { } + protected int MyProperty { get; set; } + } + + class B : A + { + public B() + { + Console.WriteLine("B"); + Console.WriteLine(publicField); // поле доступно + // Console.WriteLine(privateField); // поле не доступно в наследнике + Console.WriteLine(protectedField); // поле доступно в наследнике, но не доступно за пределами класса(или его наследников) + Bar(); + } + + public void Cas() + { + Bar(); + } + } + + static void Main() + { + A a = new A(); + Console.WriteLine(a.publicField); // поле доступно + //System.Console.WriteLine(a.protectedField)// поле не доступно из-за уровня защиты + //System.Console.WriteLine(a.privateField) // поле не доступно из-за уровня защиты + B b = new B(); + Console.WriteLine(b.publicField); // поле доступно + //System.Console.WriteLine(b.protectedField)// поле не доступно из-за уровня защиты + //System.Console.WriteLine(b.privateField) // поле не доступно из-за уровня защиты + b.Bar(); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 75 - ПОЛИМОРФИЗМ, виртуальные методы, virtual override/75_Lesson - ПОЛИМОРФИЗМ, виртуальные методы, virtual override.csproj b/LessonsAndTasks/Lesson 75 - ПОЛИМОРФИЗМ, виртуальные методы, virtual override/75_Lesson - ПОЛИМОРФИЗМ, виртуальные методы, virtual override.csproj new file mode 100644 index 0000000..f659191 --- /dev/null +++ b/LessonsAndTasks/Lesson 75 - ПОЛИМОРФИЗМ, виртуальные методы, virtual override/75_Lesson - ПОЛИМОРФИЗМ, виртуальные методы, virtual override.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_75___ПОЛИМОРФИЗМ__виртуальные_методы__virtual_override_ + + + diff --git a/LessonsAndTasks/Lesson 75 - ПОЛИМОРФИЗМ, виртуальные методы, virtual override/Program.cs b/LessonsAndTasks/Lesson 75 - ПОЛИМОРФИЗМ, виртуальные методы, virtual override/Program.cs new file mode 100644 index 0000000..d0bcaba --- /dev/null +++ b/LessonsAndTasks/Lesson 75 - ПОЛИМОРФИЗМ, виртуальные методы, virtual override/Program.cs @@ -0,0 +1,60 @@ +using System; + +/* + * Полиморфизм + * + * виртуальные методы + * + * virtual + * + * override + */ +/// +/// virtual и override - дают возможность переопределить работу методов в классе наследнике +/// +class Motor +{ + /// + /// Чтобы метод был доступен на уровно наследника вместо private ставим protected + /// + protected virtual void StartEngine() + => Console.WriteLine("Двигатель запущен!"); + + /// + /// Чтобы переопределить метод для новой реализации в наследнике + /// + public virtual void Drive() + { + StartEngine(); + Console.WriteLine("Я еду!"); + } +} + +class SportMotor : Motor +{ + protected override void StartEngine() => Console.WriteLine("Рон дон дон"); + + /// + /// Переопределение виртуального метода + /// + public override void Drive() + { + StartEngine(); + Console.WriteLine("Я быстро еду!"); + } +} + +class Stable +{ + public void Drive(Motor motor) => motor.Drive(); +} + +class Program +{ + static void Main() + { + var stable = new Stable(); + stable.Drive(new SportMotor()); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 76 - Абстрактные классы, abstract/76_Lesson - Абстрактные классы, abstract.csproj b/LessonsAndTasks/Lesson 76 - Абстрактные классы, abstract/76_Lesson - Абстрактные классы, abstract.csproj new file mode 100644 index 0000000..71b9488 --- /dev/null +++ b/LessonsAndTasks/Lesson 76 - Абстрактные классы, abstract/76_Lesson - Абстрактные классы, abstract.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_76___Абстрактные_классы__abstract_ + + + diff --git a/LessonsAndTasks/Lesson 76 - Абстрактные классы, abstract/Program.cs b/LessonsAndTasks/Lesson 76 - Абстрактные классы, abstract/Program.cs new file mode 100644 index 0000000..1d8c52f --- /dev/null +++ b/LessonsAndTasks/Lesson 76 - Абстрактные классы, abstract/Program.cs @@ -0,0 +1,108 @@ +using System; +/* + * полиморфизм + * + * абстрактный класс + * + * абстрактный метод + * + * абстрактное свойство + */ +/// +/// Абстрактный класс - это некая идея, которая может содержать в себе частичную реализацию +/// и содержание которого можно использовать в наследниках +/// +/// Из урока 77 делаем интерфейс ShowInfo +/// +interface IHasInfo +{ + void ShowInfo(); +} + +interface IWeapon +{ + int Damage { get; } + void Fire(); +} + +/// +/// Cмысл абстрактного класса в том, что поведение одно единое для всех реализует интерфейс +/// а отдельные отличия поведения разного рода объектов реализует абстрактный класс +/// +/// Хотим научить наш класс Player стрелять из любого вида оружия +/// +abstract class Weapon : IHasInfo, IWeapon +{ + public abstract int Damage { get; } + /// + /// Поведение + /// + public abstract void Fire(); + /// + /// Не только абстрактный метод но и реализация возможна + /// + public void ShowInfo() => Console.WriteLine($"{GetType().Name}: {Damage}"); +} + +/// +/// При наследовании от абстрактного класса - мы обязаны реализовать все его абстрактные методы +/// +class Gun : Weapon +{ + public override int Damage { get { return 5; } } + + public override void Fire() + => Console.WriteLine("Boom"); +} + +/// +/// При наследовании от абстрактного класса - мы обязаны реализовать все его абстрактные методы +/// +class LazerGun : Weapon +{ + public override int Damage => 9; + + public override void Fire() + => Console.WriteLine("Boom's"); +} + +/// +/// При наследовании от абстрактного класса - мы обязаны реализовать все его абстрактные методы +/// +class Bow : Weapon +{ + public override int Damage => 12; + + public override void Fire() + => Console.WriteLine("Bzzzzzzzz"); +} + +class Box : IHasInfo +{ + public void ShowInfo() => Console.WriteLine("Я ЯЩИК!"); +} + +class Player +{ + public void Fire(IWeapon weapon) => weapon.Fire(); + public void CheckInfo(Weapon weapon) => weapon.ShowInfo(); + public void CheckInterfaceInfo(IHasInfo hasInfo) => hasInfo.ShowInfo(); +} + +class Program +{ + static void Main() + { + var player = new Player(); + Weapon[] inventory = { new Gun(), new LazerGun(), new Bow() }; + foreach (var item in inventory) + { + player.CheckInfo(item); + player.CheckInterfaceInfo(item); + player.Fire(item); + Console.WriteLine(); + } + player.CheckInterfaceInfo(new Box()); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 77 - Интерфейсы, зачем нужны и как используются, interface/77_Lesson - Интерфейсы, зачем нужны и как используются, interface.csproj b/LessonsAndTasks/Lesson 77 - Интерфейсы, зачем нужны и как используются, interface/77_Lesson - Интерфейсы, зачем нужны и как используются, interface.csproj new file mode 100644 index 0000000..250b546 --- /dev/null +++ b/LessonsAndTasks/Lesson 77 - Интерфейсы, зачем нужны и как используются, interface/77_Lesson - Интерфейсы, зачем нужны и как используются, interface.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_77___Интерфейсы__зачем_нужны_и_как_используются__interface_ + + + diff --git a/LessonsAndTasks/Lesson 77 - Интерфейсы, зачем нужны и как используются, interface/Program.cs b/LessonsAndTasks/Lesson 77 - Интерфейсы, зачем нужны и как используются, interface/Program.cs new file mode 100644 index 0000000..b5fca47 --- /dev/null +++ b/LessonsAndTasks/Lesson 77 - Интерфейсы, зачем нужны и как используются, interface/Program.cs @@ -0,0 +1,64 @@ +using System; + +/* + * интерфейсы и полиморфизм + */ +/// +/// *принято что каждый класс и каждый интерфейс находится в своем отдельном файле +/// Интерфейсы - как конструкция языка программирования C# +/// мы определяем поведение которое в последствии будет реализовано в конкретном классе +/// важное отличие интерфейса от абстракции в том что оно позволяет множественное наследование +/// То есть один класс может наследовать несколько интерфейсов (класс не наследуется от интерфейса, а реализует его +/// +/// нет конструкторов +/// нет полей класса +/// только поведение(методы и свойства) и контракт +/// все по умолчанию имеют модификатор public +/// +interface IDataProvider +{ + string GetData(); +} + +interface IDataProcessor +{ + void ProcessData(IDataProvider dataProvider); +} + +/// +/// Также должны реализовать все компоненты интерфейса +/// +class ConsoleDataProcessor : IDataProcessor +{ + public void ProcessData(IDataProvider dataProvider) + => Console.WriteLine(dataProvider.GetData()); +} + +class DbDataProvider : IDataProvider +{ + public string GetData() => "Данные из БД"; +} + +class FileDataProvider : IDataProvider +{ + public string GetData() => "Данные из файла"; +} + +class APIDataProvider : IDataProvider +{ + public string GetData() => "Данные с HTTP"; +} + +class Program +{ + static void Main() + { + // ссылка на интерфейс может хранить объект класса который его реализует + IDataProcessor dataProcessor = new ConsoleDataProcessor(); + // полиморфизм в чистом виде + dataProcessor.ProcessData(new DbDataProvider()); + dataProcessor.ProcessData(new FileDataProvider()); + dataProcessor.ProcessData(new APIDataProvider()); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 78 - Наследование интерфейсов, множественное наследование/78_Lesson - Наследование интерфейсов, множественное наследование.csproj b/LessonsAndTasks/Lesson 78 - Наследование интерфейсов, множественное наследование/78_Lesson - Наследование интерфейсов, множественное наследование.csproj new file mode 100644 index 0000000..b24498d --- /dev/null +++ b/LessonsAndTasks/Lesson 78 - Наследование интерфейсов, множественное наследование/78_Lesson - Наследование интерфейсов, множественное наследование.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_78___Наследование_интерфейсов__множественное_наследование_ + + + diff --git a/LessonsAndTasks/Lesson 78 - Наследование интерфейсов, множественное наследование/Program.cs b/LessonsAndTasks/Lesson 78 - Наследование интерфейсов, множественное наследование/Program.cs new file mode 100644 index 0000000..0769ae5 --- /dev/null +++ b/LessonsAndTasks/Lesson 78 - Наследование интерфейсов, множественное наследование/Program.cs @@ -0,0 +1,82 @@ +using System; + +/* + * наследование интерфейсов + */ +interface IWeapon +{ + void Fire(); +} + +/// +/// Метательное оружие +/// +interface IThrowingWeapon : IWeapon +{ + void Throw(); +} + +/// +/// Принцип такой-же как у классов (все что есть в базовом доступно и в наследнике) +/// +interface ISmall : IWeapon { } + +/// +/// В отличии от классов поддерживают множественное наследование +/// +interface IBig : IWeapon, ISmall { } + +class Gun : IWeapon +{ + public void Fire() + => Console.WriteLine($"{GetType().Name}: GunBom"); +} + +class LazerGun : IWeapon +{ + public void Fire() + => Console.WriteLine($"{GetType().Name}: LazerGunBom"); +} + +class Bow : IWeapon// - это НЕ наследование, а реализация интерфейсов +{ + public void Fire() + => Console.WriteLine($"{GetType().Name}: BowBom"); +} + +/// +/// Реализуем нож +/// +class Knife : IThrowingWeapon +{ + public void Fire() + => Console.WriteLine($"{GetType().Name}: KnifeBom"); + + public void Throw() + => Console.WriteLine($"{GetType().Name}: KnifeThrow"); +} + +class Player +{ + public void Fire(IWeapon weapon) => weapon.Fire(); + + public void Throw(IThrowingWeapon throwingWeapon) + => throwingWeapon.Throw(); +} + +class Program +{ + static void Main() + { + ISmall small; + var player = new Player(); + IWeapon[] inventory = { new Gun(), new LazerGun(), new Knife() }; + foreach (var item in inventory) + { + player.Fire(item); + Console.WriteLine(); + } + player.Throw(new Knife()); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 79 - Интерфейсы - Явная реализация/79_Lesson - Интерфейсы - Явная реализация.csproj b/LessonsAndTasks/Lesson 79 - Интерфейсы - Явная реализация/79_Lesson - Интерфейсы - Явная реализация.csproj new file mode 100644 index 0000000..7f8a4e8 --- /dev/null +++ b/LessonsAndTasks/Lesson 79 - Интерфейсы - Явная реализация/79_Lesson - Интерфейсы - Явная реализация.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_79___Интерфейсы___Явная_реализация_ + + + diff --git a/LessonsAndTasks/Lesson 79 - Интерфейсы - Явная реализация/Program.cs b/LessonsAndTasks/Lesson 79 - Интерфейсы - Явная реализация/Program.cs new file mode 100644 index 0000000..64d1489 --- /dev/null +++ b/LessonsAndTasks/Lesson 79 - Интерфейсы - Явная реализация/Program.cs @@ -0,0 +1,74 @@ +using System; +/* + * явная реализация интерфейсов + */ +/// +/// *класс может реализовать интерфейсы с одинаковыми методами +/// *если нам нужна разная реализация для этих методов, то интерфейсы нужно реализовать явно +/// +interface IFirstInterface +{ + void Action(); +} + +interface ISecondInterface +{ + void Action(); +} + +class Actions : IFirstInterface, ISecondInterface +{ + public void Action() + => Console.WriteLine($"{GetType().Name}: Action"); +} + +/// +/// Для таких случаев нужно использовать явную реализацию интерфейсов +/// +class OtherAction : IFirstInterface, ISecondInterface +{ + /// + /// Модификаторы ставить нельзя из-за неоднозначности и отсутствия ссылки на интерфейс + /// + void IFirstInterface.Action() + { + Console.WriteLine($"IFirstInterface Action"); + } + + void ISecondInterface.Action() + { + Console.WriteLine($"ISecondInterface Action"); + } +} + +class Program +{ + static void Main() + { + var act = new Actions(); + + Action_1(act); + Action_2(act); + + var otherAction = new OtherAction(); + + Action_1(otherAction); + Action_2(otherAction); + + ((IFirstInterface)otherAction).Action(); + ((ISecondInterface)otherAction).Action(); + + // более безопасный с операторами as или is + if (otherAction is IFirstInterface firstInterface) + firstInterface.Action(); + if (otherAction is ISecondInterface secondInterface) + secondInterface.Action(); + Console.ReadKey(); + } + + public static void Action_1(IFirstInterface firstInterface) + => firstInterface.Action(); + + public static void Action_2(ISecondInterface secondInterface) + => secondInterface.Action(); +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами.sln b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами.sln new file mode 100644 index 0000000..b646857 --- /dev/null +++ b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 8 - Арифметические операции с числами", "Lesson 8 - Арифметические операции с числами\Lesson 8 - Арифметические операции с числами.csproj", "{2543A1D0-1B38-4E19-96E4-77E635CD768F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2543A1D0-1B38-4E19-96E4-77E635CD768F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2543A1D0-1B38-4E19-96E4-77E635CD768F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2543A1D0-1B38-4E19-96E4-77E635CD768F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2543A1D0-1B38-4E19-96E4-77E635CD768F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C81396E8-F9BC-4F27-A22D-C9C9EF720A69} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/08_Lesson - Арифметические операции с числами.csproj b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/08_Lesson - Арифметические операции с числами.csproj new file mode 100644 index 0000000..f778871 --- /dev/null +++ b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/08_Lesson - Арифметические операции с числами.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {2543A1D0-1B38-4E19-96E4-77E635CD768F} + Exe + Lesson_8___Арифметические_операции_с_числами + Lesson 8 - Арифметические операции с числами + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/App.config b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/Program.cs b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/Program.cs new file mode 100644 index 0000000..ad51540 --- /dev/null +++ b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/Program.cs @@ -0,0 +1,35 @@ +using System; + +/* + * ОПЕРАТОРЫ + * + * Арифметические операции с числами + * + * 1. Напишите программу, вычисляющую среднее арифметическое двух чисел + * + * 2. Введите три числа и выведите на экран значение суммы и произведения этих чисел + * + * 3. Напишите простой конвертер валют (без возможности динамического выбора валюты + * пользователем). Валюты заданы хардкодом и не изменяются. Тип валют на выбор программиста + */ +class Program +{ + static void Main() + { + int result, a = 4, b = 5; + + result = a + b; + Console.WriteLine($"Сумма: {result}"); + result = a - b; + Console.WriteLine($"Разность: {result}"); + result = a * b; + Console.WriteLine($"Произведение: {result}"); + result = a / b; + Console.WriteLine($"Деление: {result}"); + result = a % b; + Console.WriteLine($"Деление с остатком: {result}"); + double result_d = (double) a / b; + Console.WriteLine($"Деление с конвертацией с приведением к формату double: {result_d}"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7363cb8 --- /dev/null +++ b/LessonsAndTasks/Lesson 8 - Арифметические операции с числами/Lesson 8 - Арифметические операции с числами/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 8 - Арифметические операции с числами")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 8 - Арифметические операции с числами")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("2543a1d0-1b38-4e19-96e4-77e635cd768f")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/80_Lesson - Реализация интерфейса по умолчанию.csproj b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/80_Lesson - Реализация интерфейса по умолчанию.csproj new file mode 100644 index 0000000..9bb6381 --- /dev/null +++ b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/80_Lesson - Реализация интерфейса по умолчанию.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_80___Реализация_интерфейса_по_умолчанию_ + + + diff --git a/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/ConsoleLogger.cs b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/ConsoleLogger.cs new file mode 100644 index 0000000..0a86abd --- /dev/null +++ b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/ConsoleLogger.cs @@ -0,0 +1,26 @@ +using System; + +class ConsoleLogger : ILogger +{ + public void Log(LogLevel logLevelm, string message) + { + switch (logLevelm) + { + case LogLevel.Debug: + Console.ForegroundColor = ConsoleColor.Green; + break; + case LogLevel.Info: + Console.ForegroundColor = ConsoleColor.White; + break; + case LogLevel.Warning: + Console.ForegroundColor = ConsoleColor.Yellow; + break; + case LogLevel.Error: + case LogLevel.Fatal: + Console.ForegroundColor = ConsoleColor.Red; + break; + } + Console.WriteLine($"{DateTime.Now}: {message}"); + Console.ResetColor(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/Extensions.cs b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/Extensions.cs new file mode 100644 index 0000000..4c907ce --- /dev/null +++ b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/Extensions.cs @@ -0,0 +1,10 @@ +using System; + +/// +/// Методы расширения +/// +public static class Extensions +{ + public static void Foo(this ILogger logger) + => Console.WriteLine("Extension Foo()"); +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/ILogger.cs b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/ILogger.cs new file mode 100644 index 0000000..b58d60d --- /dev/null +++ b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/ILogger.cs @@ -0,0 +1,16 @@ +using System; + +/// +/// *не желательно смешивать реализацию и абстракцию, +/// *то есть все методы интерфейса должны реализовываться вне их пространства +/// Интерфейс - это конктракт взаимодействия +/// тоесть возможность писать реализации методов прямов интерфейсе +/// имеет смысл если этот интерфейс реализует множество разных классов +/// тогда не нужно в каждом из них писать дополнительную реализацию нового метода +/// +public interface ILogger +{ + void Log(LogLevel logLevelm, string message); + void Bar() => Console.WriteLine("Bar"); + int Sum(int a, int b) => a + b; +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/LogLevel.cs b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/LogLevel.cs new file mode 100644 index 0000000..5dd4317 --- /dev/null +++ b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/LogLevel.cs @@ -0,0 +1,8 @@ +public enum LogLevel +{ + Debug, + Info, + Warning, + Error, + Fatal +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/Program.cs b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/Program.cs new file mode 100644 index 0000000..ff032ed --- /dev/null +++ b/LessonsAndTasks/Lesson 80 - Реализация интерфейса по умолчанию/Program.cs @@ -0,0 +1,19 @@ +/* + * реализация интерфейса по умолчанию в C# 8.0 + */ +using System; + +class Program +{ + static void Main() + { + ILogger logger = new ConsoleLogger(); + logger.Foo(); + logger.Bar(); + logger.Sum(1, 3); + logger.Log(LogLevel.Debug, "some event"); + logger.Log(LogLevel.Warning, "some warning"); + logger.Log(LogLevel.Fatal, "some fatal"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 81 - Структуры и классы - отличия, struct vs class/81_Lesson - Структуры и классы - отличия, struct vs class.csproj b/LessonsAndTasks/Lesson 81 - Структуры и классы - отличия, struct vs class/81_Lesson - Структуры и классы - отличия, struct vs class.csproj new file mode 100644 index 0000000..8180762 --- /dev/null +++ b/LessonsAndTasks/Lesson 81 - Структуры и классы - отличия, struct vs class/81_Lesson - Структуры и классы - отличия, struct vs class.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_81___Структуры_и_классы___отличия__struct_vs_class_ + + + diff --git a/LessonsAndTasks/Lesson 81 - Структуры и классы - отличия, struct vs class/Program.cs b/LessonsAndTasks/Lesson 81 - Структуры и классы - отличия, struct vs class/Program.cs new file mode 100644 index 0000000..df1ca92 --- /dev/null +++ b/LessonsAndTasks/Lesson 81 - Структуры и классы - отличия, struct vs class/Program.cs @@ -0,0 +1,104 @@ +using System; + +/* + * структуры + */ +/* + * !!! КОГДА использовать структуру а когда нет !!!! + * Если в структуре нужно представить тип данных состоящий из примитивных типов + * которые логически просто должны быть вместе (мало полей)(пример структура Vector из UNITY) + * (только в том случае если не нужно использовать полиморфизм + * и наследование для этого типа данных) - выйгрыш в производительности + * невелируем сборщик мусора + */ +/// +/// Структуры - это тоже самое что и класс, только +/// они являются значимым (а не ссылочным) типом и не имеют наследования (но ИНТЕРФЕЙСЫ имеют) +/// Классы - ссылочный тип (reference type - управляемая куча) +/// у классов есть Finalizer(как Деструктор) +/// +public class ClassPoint +{ + public ClassPoint() { } + + public int X { get; set; } + public int Y { get; set; } + public virtual void Print() + => Console.WriteLine($"X: {X}, Y {Y}"); + /// + /// Мы можем переопределить его работу в классе + /// + ~ClassPoint() { } +} + +interface IInterface +{ + void Print(); +} + +/// +/// Значимый тип (value types - стек, ссылки на значения - в куче) - но также может храниться в управляемой куче +/// не работают virtual override при наследовании, protected для свойств и методов +/// мы не можем переопределить работу Finalizer (аналог деструктора в классах) +/// не можем инициализировать поля или свойства напрямую, задать переменные +/// реализация ctor конструктора без параметров невозможна +/// +public struct StructPoint : IInterface +{ + public int X { get; set; } + public int Y { get; set; } + + public StructPoint(int x, int y) + { + X = x; + Y = y; + } + + public void Print() => Console.WriteLine($"X: {X}, Y {Y}"); +} + +class Program +{ + static void Foo(ClassPoint classPoint) + { + classPoint.X++; + classPoint.Y++; + } + + static void Bar(StructPoint structPoint) + { + structPoint.X++; + structPoint.Y++; + } + + static void Main() + { + // при инициализации нужно найти место в управляемой куче, + // разместить там данные и получить на них ссылку - отсюда скорость работы выше + // плюс для очистки мусора замедляется работа всей программы + // инициализируем экземпляр класса в управляемую кучу + var classPoint = new ClassPoint() { X = 2, Y = 3 }; + // практически нулевая скорость создания объекта структуры (там уже данные) + // инициализируем поля структуры (помещает туда дефолтные значения) + var structPoint = new StructPoint() { X = 3, Y = 2 }; + Foo(classPoint); // тут передается ссылка (значения изменятся в экземпляре класса) + Bar(structPoint); // структуры передаются по значению (значения не изменятся в экземпляре структуры - без ref) + IInterface myInterface = structPoint; + classPoint.Print(); + myInterface.Print(); + + // каким образом работает метод Equals при сравнении структур и классов + var classPoint1 = new ClassPoint() { X = 2, Y = 3 }; + var classPoint2 = new ClassPoint() { X = 2, Y = 3 }; + + bool classesAreEqual = classPoint1.Equals(classPoint2); // false - по умолчанию сравнивает не значения, а ссылки + Console.WriteLine($"Equals class: {classesAreEqual}"); + + var structPoint1 = new StructPoint() { X = 2, Y = 3 }; + var structPoint2 = new StructPoint() { X = 2, Y = 3 }; + + bool structesAreEqual = structPoint1.Equals(structPoint2); // true - по умолчанию сравнивает значения, а не ссылки + Console.WriteLine($"Equals struct: {structesAreEqual}"); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 81_B - Benchmark DotNet/81_B_Lesson - Benchmark DotNet.csproj b/LessonsAndTasks/Lesson 81_B - Benchmark DotNet/81_B_Lesson - Benchmark DotNet.csproj new file mode 100644 index 0000000..afe2693 --- /dev/null +++ b/LessonsAndTasks/Lesson 81_B - Benchmark DotNet/81_B_Lesson - Benchmark DotNet.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_81_B___Benchmark_DotNet_ + + + diff --git a/LessonsAndTasks/Lesson 81_B - Benchmark DotNet/MyParser.cs b/LessonsAndTasks/Lesson 81_B - Benchmark DotNet/MyParser.cs new file mode 100644 index 0000000..c9e947d --- /dev/null +++ b/LessonsAndTasks/Lesson 81_B - Benchmark DotNet/MyParser.cs @@ -0,0 +1,31 @@ +using System; + +public class MyParser +{ + public int TryCathParse(string str) + { + // здесь нечего логировать и соответсвенно это бесполезная вещь + try + { + return int.Parse(str); + } + catch (Exception ex) + { + return 0; + } + } + + public int TryParse(string str) + { + int result; + if (!int.TryParse(str, out result)) + result = 0; + return result; + } + + public int TryParseFixed(string str) + { + int.TryParse(str, out int result); + return result; + } +} diff --git a/LessonsAndTasks/Lesson 81_B - Benchmark DotNet/Program.cs b/LessonsAndTasks/Lesson 81_B - Benchmark DotNet/Program.cs new file mode 100644 index 0000000..cac27dd --- /dev/null +++ b/LessonsAndTasks/Lesson 81_B - Benchmark DotNet/Program.cs @@ -0,0 +1,6 @@ +using System; + +class Program +{ + static void Main() => Console.WriteLine("Hello World!"); +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 82 - boxing and unboxing. Упаковка и распаковка значимых(value)типов/82_Lesson - boxing and unboxing. Упаковка и распаковка значимых(value)типов.csproj b/LessonsAndTasks/Lesson 82 - boxing and unboxing. Упаковка и распаковка значимых(value)типов/82_Lesson - boxing and unboxing. Упаковка и распаковка значимых(value)типов.csproj new file mode 100644 index 0000000..b6500f1 --- /dev/null +++ b/LessonsAndTasks/Lesson 82 - boxing and unboxing. Упаковка и распаковка значимых(value)типов/82_Lesson - boxing and unboxing. Упаковка и распаковка значимых(value)типов.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_82___boxing_and_unboxing._Упаковка_и_распаковка_значимых_value_типов_ + + + diff --git a/LessonsAndTasks/Lesson 82 - boxing and unboxing. Упаковка и распаковка значимых(value)типов/Program.cs b/LessonsAndTasks/Lesson 82 - boxing and unboxing. Упаковка и распаковка значимых(value)типов/Program.cs new file mode 100644 index 0000000..37121e6 --- /dev/null +++ b/LessonsAndTasks/Lesson 82 - boxing and unboxing. Упаковка и распаковка значимых(value)типов/Program.cs @@ -0,0 +1,33 @@ +using System; + +/* + * boxing and unboxing (значимые в стеке, ссылочные в куче)(лучше избегать таких ситуаций) + */ +interface IPrintable +{ + void Print(); +} + +struct Point : IPrintable +{ + public int X { get; set; } + public int Y { get; set; } + public void Print() => Console.WriteLine($"X:{X}; Y:{Y};"); +} + +class Program +{ + static void Print(IPrintable printable) => printable.Print(); + + public static void Main() + { + int a = 1; + object b = a; // boxing + int c = (int)b; // unboxing + // decimal d = (decimal)b; // InvalidCastException + var point = new Point { X = 3, Y = 3 }; // boxing (ссылку содержит на данные в куче) + Print(point); + int d = 0; d.GetType(); // boxing + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 83 - Обобщения, generic типы, методы и классы/83_Lesson - Обобщения, generic типы, методы и классы.csproj b/LessonsAndTasks/Lesson 83 - Обобщения, generic типы, методы и классы/83_Lesson - Обобщения, generic типы, методы и классы.csproj new file mode 100644 index 0000000..3531670 --- /dev/null +++ b/LessonsAndTasks/Lesson 83 - Обобщения, generic типы, методы и классы/83_Lesson - Обобщения, generic типы, методы и классы.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_83___Обобщения__generic_типы__методы_и_классы_ + + + diff --git a/LessonsAndTasks/Lesson 83 - Обобщения, generic типы, методы и классы/MyList.cs b/LessonsAndTasks/Lesson 83 - Обобщения, generic типы, методы и классы/MyList.cs new file mode 100644 index 0000000..630bdea --- /dev/null +++ b/LessonsAndTasks/Lesson 83 - Обобщения, generic типы, методы и классы/MyList.cs @@ -0,0 +1,22 @@ +using System; + +class MyList +{ + private T[] _array = Array.Empty(); + public T this[int index] + { + get => _array[index]; + set => _array[index] = value; + } + + public int Count => _array.Length; + + public void Add(T value) + { + var newArray = new T[_array.Length + 1]; + for (int el = 0; el < _array.Length; el++) + newArray[el] = _array[el]; + newArray[_array.Length] = value; + _array = newArray; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 83 - Обобщения, generic типы, методы и классы/Program.cs b/LessonsAndTasks/Lesson 83 - Обобщения, generic типы, методы и классы/Program.cs new file mode 100644 index 0000000..59dc642 --- /dev/null +++ b/LessonsAndTasks/Lesson 83 - Обобщения, generic типы, методы и классы/Program.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections; +using System.Collections.Generic; // обобщенные коллекции + +/* + * Обобщения(Generics) + */ +/// +/// Обобщения(Generics) - это такие конструкции языка которые позволяют +/// писать код который будет одинаково работать с различными типами данных +/// общий код для разных типов данных, при этом мы сохраняем строгую типизацию языка +/// получаем несколько еще очень полезных и нужных бонусов +/// +/// Например: +/// позволяет избежать процесса упаковки и распаковки значимых типов, что увеличивает производительность кода +/// +class Program +{ + static void Main() + { + int a = 1, b = 5; + string c = "aa", d = "bb"; + Console.WriteLine($"a = {a}, b = {b}"); + Console.WriteLine($"str_d = {d}, str_c = {c}"); + + Swap(ref a, ref b); + SwapType(ref c, ref d); + + Console.WriteLine($"a = {a}, b = {b}"); + Console.WriteLine($"str_d = {d}, str_c = {c}"); + + // List также использует обобщения + var list = new List(); + list.Add(2); + list.Add(5); + Console.WriteLine($"el[1] list: {list[0]}"); + list[0] = 1; + Console.WriteLine($"Change el[1] list: {list[0]}"); + + // ArrayList - аналог + // но проблемы с упаковкой распаковкой так как это тип данных object + // *почти не используется + ArrayList arrayList = new ArrayList(); + arrayList.Add(2); + arrayList.Add("33"); + Console.WriteLine($"el[1] arrayList: {arrayList[0]}"); + arrayList[0] = 1; + Console.WriteLine($"Change el[1] arrayList: {arrayList[0]}"); + + // Свой List + var listString = new MyList(); + listString.Add("aaa"); + listString.Add("bbb"); + Console.WriteLine($"1: {listString[0]} 2: {listString[1]}"); + Console.ReadKey(); + } + + static void Swap(ref int a, ref int b) + { + int temp = a; + a = b; + b = temp; + } + + static void SwapType(ref T a, ref T b) + { + T temp = a; + a = b; + b = temp; + } + + static T Foo() + { + return default(T); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 84 - Обобщения - производительность, коллекции/84_Lesson - Обобщения - производительность, коллекции.csproj b/LessonsAndTasks/Lesson 84 - Обобщения - производительность, коллекции/84_Lesson - Обобщения - производительность, коллекции.csproj new file mode 100644 index 0000000..2eb6417 --- /dev/null +++ b/LessonsAndTasks/Lesson 84 - Обобщения - производительность, коллекции/84_Lesson - Обобщения - производительность, коллекции.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + Lesson_84___Обобщения___производительность__коллекции_ + + + diff --git a/LessonsAndTasks/Lesson 84 - Обобщения - производительность, коллекции/Program.cs b/LessonsAndTasks/Lesson 84 - Обобщения - производительность, коллекции/Program.cs new file mode 100644 index 0000000..4793803 --- /dev/null +++ b/LessonsAndTasks/Lesson 84 - Обобщения - производительность, коллекции/Program.cs @@ -0,0 +1,9 @@ +using System; + +/* + * Обобщения (Generics) (Джэнэрик) + */ +class Program +{ + static void Main() => Console.WriteLine("Hello World!"); +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 84 - Обобщения - производительность, коллекции/SwapTestClass.cs b/LessonsAndTasks/Lesson 84 - Обобщения - производительность, коллекции/SwapTestClass.cs new file mode 100644 index 0000000..52b6fa6 --- /dev/null +++ b/LessonsAndTasks/Lesson 84 - Обобщения - производительность, коллекции/SwapTestClass.cs @@ -0,0 +1,16 @@ +public class SwapTestClass +{ + public static void GenericSwap(ref T a, ref T b) + { + T temp = a; + a = b; + b = temp; + } + + public static void Swap(ref object a, ref object b) + { + object temp = a; + a = b; + b = temp; + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций.sln b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций.sln new file mode 100644 index 0000000..936f17a --- /dev/null +++ b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1738 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson 9 - Приоритет арифметических операций", "Lesson 9 - Приоритет арифметических операций\Lesson 9 - Приоритет арифметических операций.csproj", "{BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A32FCC3B-77D6-4D78-890A-26899A1DE8B8} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/09_Lesson - Приоритет арифметических операций.csproj b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/09_Lesson - Приоритет арифметических операций.csproj new file mode 100644 index 0000000..375e9b8 --- /dev/null +++ b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/09_Lesson - Приоритет арифметических операций.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {BD9FA8EA-73BB-411C-B159-E73F57A9DCBA} + Exe + Lesson_9___Приоритет_арифметических_операций + Lesson 9 - Приоритет арифметических операций + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/App.config b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/Program.cs b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/Program.cs new file mode 100644 index 0000000..c3bdcc2 --- /dev/null +++ b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/Program.cs @@ -0,0 +1,17 @@ +using System; + +/* + * Приоритет арифметических операций + */ +class Program +{ + static void Main() + { + int result = 2 + 2 * 2; + int result1 = (2 + 2) * 2; // как и в математике обозначается "(" ")" + + Console.WriteLine(result); + Console.WriteLine(result1); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/Properties/AssemblyInfo.cs b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..90ab7b6 --- /dev/null +++ b/LessonsAndTasks/Lesson 9 - Приоритет арифметических операций/Lesson 9 - Приоритет арифметических операций/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Lesson 9 - Приоритет арифметических операций")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lesson 9 - Приоритет арифметических операций")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("bd9fa8ea-73bb-411c-b159-e73f57a9dcba")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Lessons.sln b/LessonsAndTasks/Lessons.sln new file mode 100644 index 0000000..a3c5a2e --- /dev/null +++ b/LessonsAndTasks/Lessons.sln @@ -0,0 +1,583 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.6.33829.357 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "02_Lesson - Типы Данных", "Lesson 2 - Типы Данных\Lesson 2 Типы Данных\02_Lesson - Типы Данных.csproj", "{DEBC4CED-8964-455A-8DEB-6FEADAF2851F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "01_Lesson - Первая программа", "Lesson 1 - Первая программа\Lesson 1 - Первая программа\01_Lesson - Первая программа.csproj", "{BEC8AD79-F534-495C-B1AD-C63EFDCCA555}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "03_Lesson - Переменные в языке", "Lesson 3 - Переменные в языке\Lesson 3 - Переменные в языке\03_Lesson - Переменные в языке.csproj", "{188BE1DF-C5E2-432A-A34B-B5B84F878235}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "04_Lesson - Ввод данных в консоль", "Lesson 4 - Ввод данных в консоль\Lesson 4 - Ввод данных в консоль\04_Lesson - Ввод данных в консоль.csproj", "{B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "05_Lesson - конвертация строки, класс Convert", "Lesson 5 - Конвертация строки, класс Convert\Lesson 5 - конвертация строки, класс Convert\05_Lesson - конвертация строки, класс Convert.csproj", "{57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "06_Lesson - Конвертация строки parse и tryparse", "Lesson 6 - Конвертация строки parse и tryparse\Lesson 6 - Конвертация строки parse и tryparse\06_Lesson - Конвертация строки parse и tryparse.csproj", "{473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "07_Lesson - Что делать если закрывается консоль", "Lesson 7 - Что делать если закрывается консоль\Lesson 7 - Что делать если закрывается консоль\07_Lesson - Что делать если закрывается консоль.csproj", "{29C3ECAE-8577-4D90-9DED-7F15E6760865}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08_Lesson - Арифметические операции с числами", "Lesson 8 - Арифметические операции с числами\Lesson 8 - Арифметические операции с числами\08_Lesson - Арифметические операции с числами.csproj", "{2543A1D0-1B38-4E19-96E4-77E635CD768F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09_Lesson - Приоритет арифметических операций", "Lesson 9 - Приоритет арифметических операций\Lesson 9 - Приоритет арифметических операций\09_Lesson - Приоритет арифметических операций.csproj", "{BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10_Lesson - Несколько проектов в одном решении", "Lesson 10 - Несколько проектов в одном решении\Lesson 10 - Несколько проектов в одном решении\10_Lesson - Несколько проектов в одном решении.csproj", "{A7E7EEDE-05D5-4467-B092-5AACE88F5A90}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08_Task Home 1 - Среднее арифметическое двух чисел", "Task Home 1 - Среднее арифметическое двух чисел\08_Task Home 1 - Среднее арифметическое двух чисел.csproj", "{F55F7A32-FC19-47A6-A9C1-07C5FEB2C394}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11_Lesson - Инкремент и декремент. Постфиксный и префиксный", "Lesson 11 - Инкремент и декремент. Постфиксный и префиксный\11_Lesson - Инкремент и декремент. Постфиксный и префиксный.csproj", "{3D82C6D9-EFBC-4F51-9A40-76D19265D814}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08_Task Home 2 - Введите три числа и выведите их произведение и суммы", "Task Home 2 - Введите три числа и выведите их произведение и суммы\08_Task Home 2 - Введите три числа и выведите их произведение и суммы.csproj", "{DA90C9B8-A37B-41F1-98E1-25EF68A3A3CC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08_Task Home 3 - Конвертер валюты", "Task Home 3 - Конвертер валюты\08_Task Home 3 - Конвертер валюты.csproj", "{45F5A326-539B-4E99-9A7A-5875EE60E13B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "12_Lesson - Операторы сравнения. Операции сравнения", "Lesson 12 - Операторы сравнения. Операции сравнения\12_Lesson - Операторы сравнения. Операции сравнения.csproj", "{C3CDCFE1-7C6D-4122-9C0B-F82FAB30999E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "13_Lesson - Конструкция if else", "Lesson 13 - Конструкция if else\13_Lesson - Конструкция if else.csproj", "{AB913711-B99C-4D68-B9EF-6D66C437F97A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "14_Lesson - Сокращённые логические операции. Логические операторы", "Lesson 14 - Сокращённые логические операции. Логические операторы\14_Lesson - Сокращённые логические операции. Логические операторы.csproj", "{668DAC0A-01C5-4DD0-ACF3-0D4E9485F449}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Task Home 4 - Проверка числа на чётность", "Task Home 4 - Проверка числа на чётность\Task Home 4 - Проверка числа на чётность.csproj", "{9124A33F-1F0D-4788-8CD8-156AE083D304}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "15_Lesson - Условный оператор множественного выбора switch", "Lesson 15 - Условный оператор множественного выбора switch\15_Lesson - Условный оператор множественного выбора switch.csproj", "{ACE8ABDC-0D05-4963-AFD8-CFF298A85A9C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Task Home 5 - Калькулятор Switch и на If Else", "Task Home 5 - Калькулятор Switch и на If Else\Task Home 5 - Калькулятор Switch и на If Else.csproj", "{C9595BDE-8D44-4EF8-8451-EBEEEE2E31D2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "18_Lesson - Цикл for", "Lesson 18 - Цикл for\18_Lesson - Цикл for.csproj", "{608C0926-91C6-4B0C-B6BF-4AE25688AB70}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "19_Lesson - Цикл for в обратном порядке", "Lesson 19 - Цикл for в обратном порядке\19_Lesson - Цикл for в обратном порядке.csproj", "{EE26A5F9-9C69-470B-94C4-7F7DE42215B1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "20_Lesson - Ключевое слово break (оператор)", "Lesson 20 - Ключевое слово break (оператор)\20_Lesson - Ключевое слово break (оператор).csproj", "{E962F366-B388-4EE4-B276-000F1B4B8052}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "21_Lesson - Ключевое слово continue", "Lesson 21 - Ключевое слово continue\21_Lesson - Ключевое слово continue.csproj", "{C8EB51D4-B80E-4227-9DC6-6E6D088F24BB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "22_Lesson - Вложенные циклы. Как работают", "Lesson 22 - Вложенные циклы. Как работают\22_Lesson - Вложенные циклы. Как работают.csproj", "{542E79A5-E2AE-4446-AFF6-17D55EDA286D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Task Home 6 - Как нарисовать треугольник в консоли", "Task Home 6 - Как нарисовать треугольник в консоли\Task Home 6 - Как нарисовать треугольник в консоли.csproj", "{4FFDDB39-D141-4EEA-ACC3-767C5BE4D955}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "23_Lesson - Тернарный оператор. Что это. Пример", "Lesson 23 - Тернарный оператор. Что это. Пример\23_Lesson - Тернарный оператор. Что это. Пример.csproj", "{C3596099-8F86-47F2-BA83-EA56E3BC76D0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "24_Lesson - Что такое массивы. Одномерный массив. Примеры", "Lesson 24 - Что такое массивы. Одномерный массив. Примеры\24_Lesson - Что такое массивы. Одномерный массив. Примеры.csproj", "{46607273-7BE4-41A6-90E5-ACFC1479A9AC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "25_Lesson - Инициализация массива. Способы", "Lesson 25 - Инициализация массива. Способы\25_Lesson - Инициализация массива. Способы.csproj", "{F1F3121A-C3D9-46DB-A69E-CF810CD8A362}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "26_Lesson - Вывод массива. Перебор массива. Массивы и циклы", "Lesson 26 - Вывод массива. Перебор массива. Массивы и циклы\26_Lesson - Вывод массива. Перебор массива. Массивы и циклы.csproj", "{C0D360CD-3C06-45CC-A0B0-4A5AC0783320}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "27_Lesson - Как работать с массивами на самом деле", "Lesson 27 - Как работать с массивами на самом деле\27_Lesson - Как работать с массивами на самом деле.csproj", "{027E7BEF-CE49-4672-93CD-9F3F4471B92A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "29_Lesson - Многомерные массивы. Двумерный прямоугольный массив", "Lesson 29 - Многомерные массивы. Двумерный прямоугольный массив\29_Lesson - Многомерные массивы. Двумерный прямоугольный массив.csproj", "{E85F79E9-98D3-4451-9CF9-163631DBB6AF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "30_Lesson - Двумерный массив. Объявление. Инициализация. Индексы", "Lesson 30 - Двумерный массив. Объявление. Инициализация. Индексы\30_Lesson - Двумерный массив. Объявление. Инициализация. Индексы.csproj", "{31F0D7A5-6BDF-49BD-B2A7-3BB7879213BB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "31_Lesson - Вывод двумерного массива", "Lesson 31 - Вывод двумерного массива\31_Lesson - Вывод двумерного массива.csproj", "{8A4C8531-FC1F-4BE9-9625-B359984F0CEB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "32_Lesson - Заполнение двумерного масива, случайными числами", "Lesson 32 - Заполнение двумерного масива, случайными числами\32_Lesson - Заполнение двумерного масива, случайными числами.csproj", "{78D5B5FF-0681-49E1-9752-B4AB395A47AB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "33_Lesson - Ступенчатые (зубчатые) массивы", "Lesson 33 - Ступенчатые (зубчатые) массивы\33_Lesson - Ступенчатые (зубчатые) массивы.csproj", "{9AA9A703-8243-4EAE-B022-EE2FF4027A85}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "34_Lesson - Трехмерные массивы, многомерные массивы любой мерности", "Lesson 34 - Трехмерные массивы, многомерные массивы любой мерности\34_Lesson - Трехмерные массивы, многомерные массивы любой мерности.csproj", "{AA3C2474-5FFC-45B8-8C23-CCE0E2DBD851}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "35_Lesson - Функции и методы, что это, примеры", "Lesson 35 - Функции и методы, что это, примеры\35_Lesson - Функции и методы, что это, примеры.csproj", "{D456B58D-3801-4B76-BE69-82A4FDB5A993}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "36_Lesson - Перегрузка методов", "Lesson 36 - Перегрузка методов\36_Lesson - Перегрузка методов.csproj", "{F34542A8-0AAA-46C7-98DE-0DF72E9A7E2F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "37_Lesson - Область видимости, контекст переменной, конфликт областей", "Lesson 37 - Область видимости, контекст переменной, конфликт областей\37_Lesson - Область видимости, контекст переменной, конфликт областей.csproj", "{149CE343-79C3-4AE2-B61E-51845872C151}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "38_Lesson - Ссылочные и значимые типы, стек и куча", "Lesson 38 - Ссылочные и значимые типы, стек и куча\38_Lesson - Ссылочные и значимые типы, стек и куча.csproj", "{AA330FB4-E2E1-4570-9ECD-65F8100E90D5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "39_Lesson - Что такое NULL", "Lesson 39 - Что такое NULL\39_Lesson - Что такое NULL.csproj", "{5BE6607E-0B8C-441E-B80E-14236D377D08}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "40_Lesson - Оператор объединения с NULL", "Lesson 40 - Оператор объекдинения с NULL\40_Lesson - Оператор объединения с NULL.csproj", "{D4526E9D-E808-4922-8841-96A03BB14650}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "42_Lesson - Оператор условного NULL", "Lesson 42 - Оператор условного NULL\42_Lesson - Оператор условного NULL.csproj", "{9737100B-A415-4E7D-ABD1-0D2B89981F16}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "42_2_Lesson - Example 1 - Оператор условного NULL", "Lesson 42_2 - Example 1 - Оператор условного NULL\42_2_Lesson - Example 1 - Оператор условного NULL.csproj", "{CD0F3063-D5AC-4B78-BC99-729D6FDD7478}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "43_Lesson - Ключевое слово ref, что это и предназначение", "Lesson 43 - Ключевое слово ref, что это и предназначение\43_Lesson - Ключевое слово ref, что это и предназначение.csproj", "{EB3EC543-CB41-4E1A-9500-9AEF5C3BC0B7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "44_Lesson - Ключевое слово out, разница out и ref", "Lesson 44 - Ключевое слово out, разница out и ref\44_Lesson - Ключевое слово out, разница out и ref.csproj", "{ACE28A2C-EB6B-4244-B493-DD99867CB90D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "45_Lesson - Модификатор in, разница in ref и out", "Lesson 45 - Модификатор in, разница in ref и out\45_Lesson - Модификатор in, разница in ref и out.csproj", "{BFE4216D-7D2E-416A-834D-43AA1C639524}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "46_Lesson - Ключевое слово params", "Lesson 46 - Ключевое слово params\46_Lesson - Ключевое слово params.csproj", "{69B61D89-B578-4F07-9DD5-7204D4F682BD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "47_Lesson - Необязательные параметры метода (параметры по умолчанию)", "Lesson 47 - Необязательные параметры метода (параметры по умолчанию)\47_Lesson - Необязательные параметры метода (параметры по умолчанию).csproj", "{9B7F8691-E337-4CA4-9E24-46EF69803734}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "48_Lesson - Именнованные параметры", "Lesson 48 - Именнованные параметры\48_Lesson - Именнованные параметры.csproj", "{A3DCBFE2-2D22-4464-9F15-3D71EDBB5F4D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "49_Lesson - Что такое рекурсия, переполнение стека", "Lesson 49 - Что такое рекурсия, переполнение стека\49_Lesson - Что такое рекурсия, переполнение стека.csproj", "{AE6951C4-54B0-4EC4-8E52-8BF73EF1766C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "50_Lesson - Преобразование и приведение, явное и неявное", "Lesson 50 - Преобразование и приведение, явное и неявное\50_Lesson - Преобразование и приведение, явное и неявное.csproj", "{4E053D6F-23F8-4262-8331-7852E8788FB2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "51_Lesson - Арифметическое переполнение, checked unchecked", "Lesson 51 - Арифметическое переполнение, checked unchecked\51_Lesson - Арифметическое переполнение, checked unchecked.csproj", "{768CA07B-FAC9-4233-BB4A-E522E5CED0FA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "52_Lesson - Что такое Nullable, Null совместимые значимые типы Nullable", "Lesson 52 - Что такое Nullable, Null совместимые значимые типы Nullable\52_Lesson - Что такое Nullable, Null совместимые значимые типы Nullable.csproj", "{B2FBBA96-D2CA-4051-A9FF-36D4FD2FE1BC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "53_Lesson - var . Это не тип данных. Неявно типизированные переменные", "Lesson 53 - var . Это не тип данных. Неявно типизированные переменные\53_Lesson - var . Это не тип данных. Неявно типизированные переменные.csproj", "{E927DC0E-7736-47FF-B661-96534265380B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "54_Lesson - enum, что это, и для чего нужно - перечисления", "Lesson 54 - enum, что это, и для чего нужно - перечисления\54_Lesson - enum, что это, и для чего нужно - перечисления.csproj", "{56F7519C-2D4F-4939-B7DB-295EC0BDBF6C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "55_Lesson - Что такое КЛАСС - ООП, объект, экземпляр класса", "Lesson 55 - Что такое КЛАСС - ООП, объект, экземпляр класса\55_Lesson - Что такое КЛАСС - ООП, объект, экземпляр класса.csproj", "{730EDE55-501D-4A60-B7E8-F6ADC743159C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "56_Lesson - Методы и классы, ООП, вызов метода экземпляра класса", "Lesson 56 - Методы и классы, ООП, вызов метода объекта класса\56_Lesson - Методы и классы, ООП, вызов метода экземпляра класса.csproj", "{E6B73F3E-92DD-4737-8FF8-A78B97CB387C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "57_Lesson - Модификаторы доступа, public, protected, private", "Lesson 57 - Модификаторы доступа, public, protected, private\57_Lesson - Модификаторы доступа, public, protected, private.csproj", "{3378E01F-43A7-4F27-8944-2FF46C35C4F0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "58_Lesson - ИНКАПСУЛЯЦИЯ, примеры", "Lesson 58 - ИНКАПСУЛЯЦИЯ, примеры\58_Lesson - ИНКАПСУЛЯЦИЯ, примеры.csproj", "{2107BF8F-95A9-4A7A-9CB0-F676E59A887A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "59_Lesson - Что такое конструктор класса, для чего, по умолчанию", "Lesson 59 - Что такое конструктор класса, для чего, по умолчанию\59_Lesson - Что такое конструктор класса, для чего, по умолчанию.csproj", "{90FB198E-A723-4127-B38F-6F3FE2180AED}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "60_Lesson - Перегрузка конструкторов класса, что это", "Lesson 60 - Перегрузка конструкторов класса, что это\60_Lesson - Перегрузка конструкторов класса, что это.csproj", "{0A6CE006-5DFA-4478-8ADC-3CA0F16CACBA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "61_Lesson - Ключевое слово this, this в конструкторе", "Lesson 61 - Ключевое слово this, this в конструкторе\61_Lesson - Ключевое слово this, this в конструкторе.csproj", "{A450AABD-15BC-433E-B9B9-9D91BF5F4BFA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "62_Lesson - Свойства get, set ключевое слово value, авто-свойства", "Lesson 62 - Свойства get, set ключевое слово value, авто-свойства\62_Lesson - Свойства get, set ключевое слово value, авто-свойства.csproj", "{D32F4616-1733-4491-81C6-D77F975DF171}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "63_Lesson - Статические поля класса, ключевое слово static", "Lesson 63 - Статические поля класса, ключевое слово static\63_Lesson - Статические поля класса, ключевое слово static.csproj", "{CAD89597-A781-491C-9B95-0C2D6DA3C70B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "64_Lesson - Статические методы, свойства, работа static", "Lesson 64 - Статические методы, свойства, работа static\64_Lesson - Статические методы, свойства, работа static.csproj", "{C203E2FB-EEB4-4496-9BC2-2951920CDD56}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "65_Lesson - Статический конструктор, как работает ключ. слово static", "Lesson 65 - Статический конструктор, как работает ключ. слово static\65_Lesson - Статический конструктор, как работает ключ. слово static.csproj", "{FDD50EA7-65F8-459D-9266-51E229757B78}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "66_Lesson - Статический класс", "Lesson 66 - Статический класс\66_Lesson - Статический класс.csproj", "{78912F30-35BD-411C-8CA9-49A2A3726745}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "67_Lesson - Методы расширения, extension", "Lesson 67 - Методы расширения, extension\67_Lesson - Методы расширения, extension.csproj", "{885DA3AA-3B3C-43EC-823D-A0B73D359B6A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "68_Lesson - partial класс, частичные типы, partial методы", "Lesson 68 - partial класс, частичные типы, partial методы\68_Lesson - partial класс, частичные типы, partial методы.csproj", "{A3011C15-258D-4A62-B01B-91EFEEA9C936}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "16_Lesson - Цикл while", "Lesson 16 - Цикл while\16_Lesson - Цикл while.csproj", "{8FCFD429-4E9C-4B5D-B3C5-CF398BD0F3F2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "17_Lesson - Цикл do while", "Lesson 17 - Цикл do while\17_Lesson - Цикл do while.csproj", "{60AE567A-7D98-47A8-BBA3-74DC52A32BC8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "41_Lesson - Оператор присваивания объединения со значением NULL", "Lesson 41 - Оператор присваивания объединения со значением NULL\41_Lesson - Оператор присваивания объединения со значением NULL.csproj", "{8E106150-257D-45F1-84BD-FC7AAE39FF5B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "40_wf_Lesson - Оператор объединения с NULL", "40_wf_Lesson - Оператор объединения с NULL\40_wf_Lesson - Оператор объединения с NULL.csproj", "{C89BEC2D-AC6B-4836-8D04-80B00362656A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "28_Lesson - Индексы и диапазоны", "Lesson 28 - Индексы и диапазоны\28_Lesson - Индексы и диапазоны.csproj", "{5DDDBF07-3D23-47EB-9816-A833D0B64D68}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "69_Lesson - const vs readonly - разница между ними(const и static)", "Lesson 69 - const vs readonly - разница между ними(const и static)\69_Lesson - const vs readonly - разница между ними(const и static).csproj", "{6357636C-FF16-4E60-A20E-5311B8375DBE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "70_Lesson - синтаксис инициализации объектов класса", "Lesson 70 - синтаксис инициализации объектов класса\70_Lesson - синтаксис инициализации объектов класса.csproj", "{1CBF1FCB-88B0-44E3-83B3-C3AA73AAE61C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "71_Lesson - НАСЛЕДОВАНИЕ", "Lesson 71 - НАСЛЕДОВАНИЕ\71_Lesson - НАСЛЕДОВАНИЕ.csproj", "{0A4585EC-8C47-4A26-9A18-1D69980D1E2B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "81_81B_84_Benchmark", "Benchmark\81_81B_84_Benchmark.csproj", "{C1093981-1075-447D-8BFA-EDB9D10FCB64}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "72_Lesson - Ключевое слово base, наследование и конструктор класса", "Lesson 72 - Ключевое слово base, наследование и конструктор класса\72_Lesson - Ключевое слово base, наследование и конструктор класса.csproj", "{2E1EE3FA-1599-4322-B33D-8B598924BB88}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "73_Lesson - Операторы as is, наследование и приведение типов", "Lesson 73 - Операторы as is, наследование и приведение типов\73_Lesson - Операторы as is, наследование и приведение типов.csproj", "{938BC277-52D7-4EFC-BECD-8D1901EAD397}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "74_Lesson - protected - модификатор доступа", "Lesson 74 - protected - модификатор доступа\74_Lesson - protected - модификатор доступа.csproj", "{5F478978-6103-4BBD-B754-3146DC02F776}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "75_Lesson - ПОЛИМОРФИЗМ, виртуальные методы, virtual override", "Lesson 75 - ПОЛИМОРФИЗМ, виртуальные методы, virtual override\75_Lesson - ПОЛИМОРФИЗМ, виртуальные методы, virtual override.csproj", "{F6F8B9FF-BAD2-4378-8586-1A3E60375557}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "76_Lesson - Абстрактные классы, abstract", "Lesson 76 - Абстрактные классы, abstract\76_Lesson - Абстрактные классы, abstract.csproj", "{6C7D24B6-B9B1-4F96-A4FF-A9994F6B1801}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "77_Lesson - Интерфейсы, зачем нужны и как используются, interface", "Lesson 77 - Интерфейсы, зачем нужны и как используются, interface\77_Lesson - Интерфейсы, зачем нужны и как используются, interface.csproj", "{477C0E7B-8542-4B12-AF5D-D7220F8908D6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "78_Lesson - Наследование интерфейсов, множественное наследование", "Lesson 78 - Наследование интерфейсов, множественное наследование\78_Lesson - Наследование интерфейсов, множественное наследование.csproj", "{780E2867-4EC4-420C-A116-959826DE2015}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "79_Lesson - Интерфейсы - Явная реализация", "Lesson 79 - Интерфейсы - Явная реализация\79_Lesson - Интерфейсы - Явная реализация.csproj", "{4BF5287A-52FF-4DF1-9C23-70F0EC0F620B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "80_Lesson - Реализация интерфейса по умолчанию", "Lesson 80 - Реализация интерфейса по умолчанию\80_Lesson - Реализация интерфейса по умолчанию.csproj", "{1C840A7E-8AC1-47F9-AD84-9521D91D3594}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "81_Lesson - Структуры и классы - отличия, struct vs class", "Lesson 81 - Структуры и классы - отличия, struct vs class\81_Lesson - Структуры и классы - отличия, struct vs class.csproj", "{AF7FF555-8B13-4C9C-9C1E-1685449E0B50}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "81_B_Lesson - Benchmark DotNet", "Lesson 81_B - Benchmark DotNet\81_B_Lesson - Benchmark DotNet.csproj", "{2D2C9F96-471C-4BE6-BB6D-BDA7DEE8F985}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "82_Lesson - boxing and unboxing. Упаковка и распаковка значимых(value)типов", "Lesson 82 - boxing and unboxing. Упаковка и распаковка значимых(value)типов\82_Lesson - boxing and unboxing. Упаковка и распаковка значимых(value)типов.csproj", "{4B334357-EFF1-4C7E-871D-421D469ED12E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "83_Lesson - Обобщения, generic типы, методы и классы", "Lesson 83 - Обобщения, generic типы, методы и классы\83_Lesson - Обобщения, generic типы, методы и классы.csproj", "{78595B16-7D12-44FB-AD7F-8822979E83D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "84_Lesson - Обобщения - производительность, коллекции", "Lesson 84 - Обобщения - производительность, коллекции\84_Lesson - Обобщения - производительность, коллекции.csproj", "{B5B0A6BF-1386-4749-B5CF-EF0C7200E661}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DEBC4CED-8964-455A-8DEB-6FEADAF2851F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DEBC4CED-8964-455A-8DEB-6FEADAF2851F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DEBC4CED-8964-455A-8DEB-6FEADAF2851F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DEBC4CED-8964-455A-8DEB-6FEADAF2851F}.Release|Any CPU.Build.0 = Release|Any CPU + {BEC8AD79-F534-495C-B1AD-C63EFDCCA555}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEC8AD79-F534-495C-B1AD-C63EFDCCA555}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEC8AD79-F534-495C-B1AD-C63EFDCCA555}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEC8AD79-F534-495C-B1AD-C63EFDCCA555}.Release|Any CPU.Build.0 = Release|Any CPU + {188BE1DF-C5E2-432A-A34B-B5B84F878235}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {188BE1DF-C5E2-432A-A34B-B5B84F878235}.Debug|Any CPU.Build.0 = Debug|Any CPU + {188BE1DF-C5E2-432A-A34B-B5B84F878235}.Release|Any CPU.ActiveCfg = Release|Any CPU + {188BE1DF-C5E2-432A-A34B-B5B84F878235}.Release|Any CPU.Build.0 = Release|Any CPU + {B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1DC4F5A-1A96-4068-B1FA-2E78286AE2C4}.Release|Any CPU.Build.0 = Release|Any CPU + {57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {57ACDCF4-1C18-4EDE-9F92-4BA2791B523C}.Release|Any CPU.Build.0 = Release|Any CPU + {473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {473B7C29-AD6F-41A3-BBF5-7F0D1968BE42}.Release|Any CPU.Build.0 = Release|Any CPU + {29C3ECAE-8577-4D90-9DED-7F15E6760865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29C3ECAE-8577-4D90-9DED-7F15E6760865}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29C3ECAE-8577-4D90-9DED-7F15E6760865}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29C3ECAE-8577-4D90-9DED-7F15E6760865}.Release|Any CPU.Build.0 = Release|Any CPU + {2543A1D0-1B38-4E19-96E4-77E635CD768F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2543A1D0-1B38-4E19-96E4-77E635CD768F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2543A1D0-1B38-4E19-96E4-77E635CD768F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2543A1D0-1B38-4E19-96E4-77E635CD768F}.Release|Any CPU.Build.0 = Release|Any CPU + {BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD9FA8EA-73BB-411C-B159-E73F57A9DCBA}.Release|Any CPU.Build.0 = Release|Any CPU + {A7E7EEDE-05D5-4467-B092-5AACE88F5A90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7E7EEDE-05D5-4467-B092-5AACE88F5A90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7E7EEDE-05D5-4467-B092-5AACE88F5A90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7E7EEDE-05D5-4467-B092-5AACE88F5A90}.Release|Any CPU.Build.0 = Release|Any CPU + {F55F7A32-FC19-47A6-A9C1-07C5FEB2C394}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F55F7A32-FC19-47A6-A9C1-07C5FEB2C394}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F55F7A32-FC19-47A6-A9C1-07C5FEB2C394}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F55F7A32-FC19-47A6-A9C1-07C5FEB2C394}.Release|Any CPU.Build.0 = Release|Any CPU + {3D82C6D9-EFBC-4F51-9A40-76D19265D814}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D82C6D9-EFBC-4F51-9A40-76D19265D814}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D82C6D9-EFBC-4F51-9A40-76D19265D814}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D82C6D9-EFBC-4F51-9A40-76D19265D814}.Release|Any CPU.Build.0 = Release|Any CPU + {DA90C9B8-A37B-41F1-98E1-25EF68A3A3CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA90C9B8-A37B-41F1-98E1-25EF68A3A3CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA90C9B8-A37B-41F1-98E1-25EF68A3A3CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA90C9B8-A37B-41F1-98E1-25EF68A3A3CC}.Release|Any CPU.Build.0 = Release|Any CPU + {45F5A326-539B-4E99-9A7A-5875EE60E13B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45F5A326-539B-4E99-9A7A-5875EE60E13B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45F5A326-539B-4E99-9A7A-5875EE60E13B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45F5A326-539B-4E99-9A7A-5875EE60E13B}.Release|Any CPU.Build.0 = Release|Any CPU + {C3CDCFE1-7C6D-4122-9C0B-F82FAB30999E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3CDCFE1-7C6D-4122-9C0B-F82FAB30999E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3CDCFE1-7C6D-4122-9C0B-F82FAB30999E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3CDCFE1-7C6D-4122-9C0B-F82FAB30999E}.Release|Any CPU.Build.0 = Release|Any CPU + {AB913711-B99C-4D68-B9EF-6D66C437F97A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB913711-B99C-4D68-B9EF-6D66C437F97A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB913711-B99C-4D68-B9EF-6D66C437F97A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB913711-B99C-4D68-B9EF-6D66C437F97A}.Release|Any CPU.Build.0 = Release|Any CPU + {668DAC0A-01C5-4DD0-ACF3-0D4E9485F449}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {668DAC0A-01C5-4DD0-ACF3-0D4E9485F449}.Debug|Any CPU.Build.0 = Debug|Any CPU + {668DAC0A-01C5-4DD0-ACF3-0D4E9485F449}.Release|Any CPU.ActiveCfg = Release|Any CPU + {668DAC0A-01C5-4DD0-ACF3-0D4E9485F449}.Release|Any CPU.Build.0 = Release|Any CPU + {9124A33F-1F0D-4788-8CD8-156AE083D304}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9124A33F-1F0D-4788-8CD8-156AE083D304}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9124A33F-1F0D-4788-8CD8-156AE083D304}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9124A33F-1F0D-4788-8CD8-156AE083D304}.Release|Any CPU.Build.0 = Release|Any CPU + {ACE8ABDC-0D05-4963-AFD8-CFF298A85A9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ACE8ABDC-0D05-4963-AFD8-CFF298A85A9C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ACE8ABDC-0D05-4963-AFD8-CFF298A85A9C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ACE8ABDC-0D05-4963-AFD8-CFF298A85A9C}.Release|Any CPU.Build.0 = Release|Any CPU + {C9595BDE-8D44-4EF8-8451-EBEEEE2E31D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9595BDE-8D44-4EF8-8451-EBEEEE2E31D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9595BDE-8D44-4EF8-8451-EBEEEE2E31D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9595BDE-8D44-4EF8-8451-EBEEEE2E31D2}.Release|Any CPU.Build.0 = Release|Any CPU + {608C0926-91C6-4B0C-B6BF-4AE25688AB70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {608C0926-91C6-4B0C-B6BF-4AE25688AB70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {608C0926-91C6-4B0C-B6BF-4AE25688AB70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {608C0926-91C6-4B0C-B6BF-4AE25688AB70}.Release|Any CPU.Build.0 = Release|Any CPU + {EE26A5F9-9C69-470B-94C4-7F7DE42215B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE26A5F9-9C69-470B-94C4-7F7DE42215B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE26A5F9-9C69-470B-94C4-7F7DE42215B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE26A5F9-9C69-470B-94C4-7F7DE42215B1}.Release|Any CPU.Build.0 = Release|Any CPU + {E962F366-B388-4EE4-B276-000F1B4B8052}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E962F366-B388-4EE4-B276-000F1B4B8052}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E962F366-B388-4EE4-B276-000F1B4B8052}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E962F366-B388-4EE4-B276-000F1B4B8052}.Release|Any CPU.Build.0 = Release|Any CPU + {C8EB51D4-B80E-4227-9DC6-6E6D088F24BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8EB51D4-B80E-4227-9DC6-6E6D088F24BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8EB51D4-B80E-4227-9DC6-6E6D088F24BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8EB51D4-B80E-4227-9DC6-6E6D088F24BB}.Release|Any CPU.Build.0 = Release|Any CPU + {542E79A5-E2AE-4446-AFF6-17D55EDA286D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {542E79A5-E2AE-4446-AFF6-17D55EDA286D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {542E79A5-E2AE-4446-AFF6-17D55EDA286D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {542E79A5-E2AE-4446-AFF6-17D55EDA286D}.Release|Any CPU.Build.0 = Release|Any CPU + {4FFDDB39-D141-4EEA-ACC3-767C5BE4D955}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FFDDB39-D141-4EEA-ACC3-767C5BE4D955}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FFDDB39-D141-4EEA-ACC3-767C5BE4D955}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FFDDB39-D141-4EEA-ACC3-767C5BE4D955}.Release|Any CPU.Build.0 = Release|Any CPU + {C3596099-8F86-47F2-BA83-EA56E3BC76D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3596099-8F86-47F2-BA83-EA56E3BC76D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3596099-8F86-47F2-BA83-EA56E3BC76D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3596099-8F86-47F2-BA83-EA56E3BC76D0}.Release|Any CPU.Build.0 = Release|Any CPU + {46607273-7BE4-41A6-90E5-ACFC1479A9AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46607273-7BE4-41A6-90E5-ACFC1479A9AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46607273-7BE4-41A6-90E5-ACFC1479A9AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46607273-7BE4-41A6-90E5-ACFC1479A9AC}.Release|Any CPU.Build.0 = Release|Any CPU + {F1F3121A-C3D9-46DB-A69E-CF810CD8A362}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1F3121A-C3D9-46DB-A69E-CF810CD8A362}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1F3121A-C3D9-46DB-A69E-CF810CD8A362}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1F3121A-C3D9-46DB-A69E-CF810CD8A362}.Release|Any CPU.Build.0 = Release|Any CPU + {C0D360CD-3C06-45CC-A0B0-4A5AC0783320}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0D360CD-3C06-45CC-A0B0-4A5AC0783320}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0D360CD-3C06-45CC-A0B0-4A5AC0783320}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0D360CD-3C06-45CC-A0B0-4A5AC0783320}.Release|Any CPU.Build.0 = Release|Any CPU + {027E7BEF-CE49-4672-93CD-9F3F4471B92A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {027E7BEF-CE49-4672-93CD-9F3F4471B92A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {027E7BEF-CE49-4672-93CD-9F3F4471B92A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {027E7BEF-CE49-4672-93CD-9F3F4471B92A}.Release|Any CPU.Build.0 = Release|Any CPU + {E85F79E9-98D3-4451-9CF9-163631DBB6AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E85F79E9-98D3-4451-9CF9-163631DBB6AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E85F79E9-98D3-4451-9CF9-163631DBB6AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E85F79E9-98D3-4451-9CF9-163631DBB6AF}.Release|Any CPU.Build.0 = Release|Any CPU + {31F0D7A5-6BDF-49BD-B2A7-3BB7879213BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31F0D7A5-6BDF-49BD-B2A7-3BB7879213BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31F0D7A5-6BDF-49BD-B2A7-3BB7879213BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31F0D7A5-6BDF-49BD-B2A7-3BB7879213BB}.Release|Any CPU.Build.0 = Release|Any CPU + {8A4C8531-FC1F-4BE9-9625-B359984F0CEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A4C8531-FC1F-4BE9-9625-B359984F0CEB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A4C8531-FC1F-4BE9-9625-B359984F0CEB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A4C8531-FC1F-4BE9-9625-B359984F0CEB}.Release|Any CPU.Build.0 = Release|Any CPU + {78D5B5FF-0681-49E1-9752-B4AB395A47AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78D5B5FF-0681-49E1-9752-B4AB395A47AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78D5B5FF-0681-49E1-9752-B4AB395A47AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78D5B5FF-0681-49E1-9752-B4AB395A47AB}.Release|Any CPU.Build.0 = Release|Any CPU + {9AA9A703-8243-4EAE-B022-EE2FF4027A85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9AA9A703-8243-4EAE-B022-EE2FF4027A85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9AA9A703-8243-4EAE-B022-EE2FF4027A85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9AA9A703-8243-4EAE-B022-EE2FF4027A85}.Release|Any CPU.Build.0 = Release|Any CPU + {AA3C2474-5FFC-45B8-8C23-CCE0E2DBD851}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA3C2474-5FFC-45B8-8C23-CCE0E2DBD851}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA3C2474-5FFC-45B8-8C23-CCE0E2DBD851}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA3C2474-5FFC-45B8-8C23-CCE0E2DBD851}.Release|Any CPU.Build.0 = Release|Any CPU + {D456B58D-3801-4B76-BE69-82A4FDB5A993}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D456B58D-3801-4B76-BE69-82A4FDB5A993}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D456B58D-3801-4B76-BE69-82A4FDB5A993}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D456B58D-3801-4B76-BE69-82A4FDB5A993}.Release|Any CPU.Build.0 = Release|Any CPU + {F34542A8-0AAA-46C7-98DE-0DF72E9A7E2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F34542A8-0AAA-46C7-98DE-0DF72E9A7E2F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F34542A8-0AAA-46C7-98DE-0DF72E9A7E2F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F34542A8-0AAA-46C7-98DE-0DF72E9A7E2F}.Release|Any CPU.Build.0 = Release|Any CPU + {149CE343-79C3-4AE2-B61E-51845872C151}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {149CE343-79C3-4AE2-B61E-51845872C151}.Debug|Any CPU.Build.0 = Debug|Any CPU + {149CE343-79C3-4AE2-B61E-51845872C151}.Release|Any CPU.ActiveCfg = Release|Any CPU + {149CE343-79C3-4AE2-B61E-51845872C151}.Release|Any CPU.Build.0 = Release|Any CPU + {AA330FB4-E2E1-4570-9ECD-65F8100E90D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA330FB4-E2E1-4570-9ECD-65F8100E90D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA330FB4-E2E1-4570-9ECD-65F8100E90D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA330FB4-E2E1-4570-9ECD-65F8100E90D5}.Release|Any CPU.Build.0 = Release|Any CPU + {5BE6607E-0B8C-441E-B80E-14236D377D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BE6607E-0B8C-441E-B80E-14236D377D08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BE6607E-0B8C-441E-B80E-14236D377D08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BE6607E-0B8C-441E-B80E-14236D377D08}.Release|Any CPU.Build.0 = Release|Any CPU + {D4526E9D-E808-4922-8841-96A03BB14650}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4526E9D-E808-4922-8841-96A03BB14650}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4526E9D-E808-4922-8841-96A03BB14650}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4526E9D-E808-4922-8841-96A03BB14650}.Release|Any CPU.Build.0 = Release|Any CPU + {9737100B-A415-4E7D-ABD1-0D2B89981F16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9737100B-A415-4E7D-ABD1-0D2B89981F16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9737100B-A415-4E7D-ABD1-0D2B89981F16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9737100B-A415-4E7D-ABD1-0D2B89981F16}.Release|Any CPU.Build.0 = Release|Any CPU + {CD0F3063-D5AC-4B78-BC99-729D6FDD7478}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CD0F3063-D5AC-4B78-BC99-729D6FDD7478}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD0F3063-D5AC-4B78-BC99-729D6FDD7478}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CD0F3063-D5AC-4B78-BC99-729D6FDD7478}.Release|Any CPU.Build.0 = Release|Any CPU + {EB3EC543-CB41-4E1A-9500-9AEF5C3BC0B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB3EC543-CB41-4E1A-9500-9AEF5C3BC0B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB3EC543-CB41-4E1A-9500-9AEF5C3BC0B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB3EC543-CB41-4E1A-9500-9AEF5C3BC0B7}.Release|Any CPU.Build.0 = Release|Any CPU + {ACE28A2C-EB6B-4244-B493-DD99867CB90D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ACE28A2C-EB6B-4244-B493-DD99867CB90D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ACE28A2C-EB6B-4244-B493-DD99867CB90D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ACE28A2C-EB6B-4244-B493-DD99867CB90D}.Release|Any CPU.Build.0 = Release|Any CPU + {BFE4216D-7D2E-416A-834D-43AA1C639524}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFE4216D-7D2E-416A-834D-43AA1C639524}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFE4216D-7D2E-416A-834D-43AA1C639524}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFE4216D-7D2E-416A-834D-43AA1C639524}.Release|Any CPU.Build.0 = Release|Any CPU + {69B61D89-B578-4F07-9DD5-7204D4F682BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69B61D89-B578-4F07-9DD5-7204D4F682BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69B61D89-B578-4F07-9DD5-7204D4F682BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69B61D89-B578-4F07-9DD5-7204D4F682BD}.Release|Any CPU.Build.0 = Release|Any CPU + {9B7F8691-E337-4CA4-9E24-46EF69803734}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B7F8691-E337-4CA4-9E24-46EF69803734}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B7F8691-E337-4CA4-9E24-46EF69803734}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B7F8691-E337-4CA4-9E24-46EF69803734}.Release|Any CPU.Build.0 = Release|Any CPU + {A3DCBFE2-2D22-4464-9F15-3D71EDBB5F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3DCBFE2-2D22-4464-9F15-3D71EDBB5F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3DCBFE2-2D22-4464-9F15-3D71EDBB5F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3DCBFE2-2D22-4464-9F15-3D71EDBB5F4D}.Release|Any CPU.Build.0 = Release|Any CPU + {AE6951C4-54B0-4EC4-8E52-8BF73EF1766C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE6951C4-54B0-4EC4-8E52-8BF73EF1766C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE6951C4-54B0-4EC4-8E52-8BF73EF1766C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE6951C4-54B0-4EC4-8E52-8BF73EF1766C}.Release|Any CPU.Build.0 = Release|Any CPU + {4E053D6F-23F8-4262-8331-7852E8788FB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E053D6F-23F8-4262-8331-7852E8788FB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E053D6F-23F8-4262-8331-7852E8788FB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E053D6F-23F8-4262-8331-7852E8788FB2}.Release|Any CPU.Build.0 = Release|Any CPU + {768CA07B-FAC9-4233-BB4A-E522E5CED0FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {768CA07B-FAC9-4233-BB4A-E522E5CED0FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {768CA07B-FAC9-4233-BB4A-E522E5CED0FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {768CA07B-FAC9-4233-BB4A-E522E5CED0FA}.Release|Any CPU.Build.0 = Release|Any CPU + {B2FBBA96-D2CA-4051-A9FF-36D4FD2FE1BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2FBBA96-D2CA-4051-A9FF-36D4FD2FE1BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2FBBA96-D2CA-4051-A9FF-36D4FD2FE1BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2FBBA96-D2CA-4051-A9FF-36D4FD2FE1BC}.Release|Any CPU.Build.0 = Release|Any CPU + {E927DC0E-7736-47FF-B661-96534265380B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E927DC0E-7736-47FF-B661-96534265380B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E927DC0E-7736-47FF-B661-96534265380B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E927DC0E-7736-47FF-B661-96534265380B}.Release|Any CPU.Build.0 = Release|Any CPU + {56F7519C-2D4F-4939-B7DB-295EC0BDBF6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56F7519C-2D4F-4939-B7DB-295EC0BDBF6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56F7519C-2D4F-4939-B7DB-295EC0BDBF6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56F7519C-2D4F-4939-B7DB-295EC0BDBF6C}.Release|Any CPU.Build.0 = Release|Any CPU + {730EDE55-501D-4A60-B7E8-F6ADC743159C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {730EDE55-501D-4A60-B7E8-F6ADC743159C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {730EDE55-501D-4A60-B7E8-F6ADC743159C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {730EDE55-501D-4A60-B7E8-F6ADC743159C}.Release|Any CPU.Build.0 = Release|Any CPU + {E6B73F3E-92DD-4737-8FF8-A78B97CB387C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6B73F3E-92DD-4737-8FF8-A78B97CB387C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6B73F3E-92DD-4737-8FF8-A78B97CB387C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6B73F3E-92DD-4737-8FF8-A78B97CB387C}.Release|Any CPU.Build.0 = Release|Any CPU + {3378E01F-43A7-4F27-8944-2FF46C35C4F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3378E01F-43A7-4F27-8944-2FF46C35C4F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3378E01F-43A7-4F27-8944-2FF46C35C4F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3378E01F-43A7-4F27-8944-2FF46C35C4F0}.Release|Any CPU.Build.0 = Release|Any CPU + {2107BF8F-95A9-4A7A-9CB0-F676E59A887A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2107BF8F-95A9-4A7A-9CB0-F676E59A887A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2107BF8F-95A9-4A7A-9CB0-F676E59A887A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2107BF8F-95A9-4A7A-9CB0-F676E59A887A}.Release|Any CPU.Build.0 = Release|Any CPU + {90FB198E-A723-4127-B38F-6F3FE2180AED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90FB198E-A723-4127-B38F-6F3FE2180AED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90FB198E-A723-4127-B38F-6F3FE2180AED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90FB198E-A723-4127-B38F-6F3FE2180AED}.Release|Any CPU.Build.0 = Release|Any CPU + {0A6CE006-5DFA-4478-8ADC-3CA0F16CACBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A6CE006-5DFA-4478-8ADC-3CA0F16CACBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A6CE006-5DFA-4478-8ADC-3CA0F16CACBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A6CE006-5DFA-4478-8ADC-3CA0F16CACBA}.Release|Any CPU.Build.0 = Release|Any CPU + {A450AABD-15BC-433E-B9B9-9D91BF5F4BFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A450AABD-15BC-433E-B9B9-9D91BF5F4BFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A450AABD-15BC-433E-B9B9-9D91BF5F4BFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A450AABD-15BC-433E-B9B9-9D91BF5F4BFA}.Release|Any CPU.Build.0 = Release|Any CPU + {D32F4616-1733-4491-81C6-D77F975DF171}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D32F4616-1733-4491-81C6-D77F975DF171}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D32F4616-1733-4491-81C6-D77F975DF171}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D32F4616-1733-4491-81C6-D77F975DF171}.Release|Any CPU.Build.0 = Release|Any CPU + {CAD89597-A781-491C-9B95-0C2D6DA3C70B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAD89597-A781-491C-9B95-0C2D6DA3C70B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAD89597-A781-491C-9B95-0C2D6DA3C70B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAD89597-A781-491C-9B95-0C2D6DA3C70B}.Release|Any CPU.Build.0 = Release|Any CPU + {C203E2FB-EEB4-4496-9BC2-2951920CDD56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C203E2FB-EEB4-4496-9BC2-2951920CDD56}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C203E2FB-EEB4-4496-9BC2-2951920CDD56}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C203E2FB-EEB4-4496-9BC2-2951920CDD56}.Release|Any CPU.Build.0 = Release|Any CPU + {FDD50EA7-65F8-459D-9266-51E229757B78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDD50EA7-65F8-459D-9266-51E229757B78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDD50EA7-65F8-459D-9266-51E229757B78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDD50EA7-65F8-459D-9266-51E229757B78}.Release|Any CPU.Build.0 = Release|Any CPU + {78912F30-35BD-411C-8CA9-49A2A3726745}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78912F30-35BD-411C-8CA9-49A2A3726745}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78912F30-35BD-411C-8CA9-49A2A3726745}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78912F30-35BD-411C-8CA9-49A2A3726745}.Release|Any CPU.Build.0 = Release|Any CPU + {885DA3AA-3B3C-43EC-823D-A0B73D359B6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {885DA3AA-3B3C-43EC-823D-A0B73D359B6A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {885DA3AA-3B3C-43EC-823D-A0B73D359B6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {885DA3AA-3B3C-43EC-823D-A0B73D359B6A}.Release|Any CPU.Build.0 = Release|Any CPU + {A3011C15-258D-4A62-B01B-91EFEEA9C936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3011C15-258D-4A62-B01B-91EFEEA9C936}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3011C15-258D-4A62-B01B-91EFEEA9C936}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3011C15-258D-4A62-B01B-91EFEEA9C936}.Release|Any CPU.Build.0 = Release|Any CPU + {8FCFD429-4E9C-4B5D-B3C5-CF398BD0F3F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FCFD429-4E9C-4B5D-B3C5-CF398BD0F3F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FCFD429-4E9C-4B5D-B3C5-CF398BD0F3F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FCFD429-4E9C-4B5D-B3C5-CF398BD0F3F2}.Release|Any CPU.Build.0 = Release|Any CPU + {60AE567A-7D98-47A8-BBA3-74DC52A32BC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60AE567A-7D98-47A8-BBA3-74DC52A32BC8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60AE567A-7D98-47A8-BBA3-74DC52A32BC8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60AE567A-7D98-47A8-BBA3-74DC52A32BC8}.Release|Any CPU.Build.0 = Release|Any CPU + {8E106150-257D-45F1-84BD-FC7AAE39FF5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E106150-257D-45F1-84BD-FC7AAE39FF5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E106150-257D-45F1-84BD-FC7AAE39FF5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E106150-257D-45F1-84BD-FC7AAE39FF5B}.Release|Any CPU.Build.0 = Release|Any CPU + {C89BEC2D-AC6B-4836-8D04-80B00362656A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C89BEC2D-AC6B-4836-8D04-80B00362656A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C89BEC2D-AC6B-4836-8D04-80B00362656A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C89BEC2D-AC6B-4836-8D04-80B00362656A}.Release|Any CPU.Build.0 = Release|Any CPU + {5DDDBF07-3D23-47EB-9816-A833D0B64D68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5DDDBF07-3D23-47EB-9816-A833D0B64D68}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5DDDBF07-3D23-47EB-9816-A833D0B64D68}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5DDDBF07-3D23-47EB-9816-A833D0B64D68}.Release|Any CPU.Build.0 = Release|Any CPU + {6357636C-FF16-4E60-A20E-5311B8375DBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6357636C-FF16-4E60-A20E-5311B8375DBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6357636C-FF16-4E60-A20E-5311B8375DBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6357636C-FF16-4E60-A20E-5311B8375DBE}.Release|Any CPU.Build.0 = Release|Any CPU + {1CBF1FCB-88B0-44E3-83B3-C3AA73AAE61C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CBF1FCB-88B0-44E3-83B3-C3AA73AAE61C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CBF1FCB-88B0-44E3-83B3-C3AA73AAE61C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CBF1FCB-88B0-44E3-83B3-C3AA73AAE61C}.Release|Any CPU.Build.0 = Release|Any CPU + {0A4585EC-8C47-4A26-9A18-1D69980D1E2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A4585EC-8C47-4A26-9A18-1D69980D1E2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A4585EC-8C47-4A26-9A18-1D69980D1E2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A4585EC-8C47-4A26-9A18-1D69980D1E2B}.Release|Any CPU.Build.0 = Release|Any CPU + {C1093981-1075-447D-8BFA-EDB9D10FCB64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1093981-1075-447D-8BFA-EDB9D10FCB64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1093981-1075-447D-8BFA-EDB9D10FCB64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1093981-1075-447D-8BFA-EDB9D10FCB64}.Release|Any CPU.Build.0 = Release|Any CPU + {2E1EE3FA-1599-4322-B33D-8B598924BB88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E1EE3FA-1599-4322-B33D-8B598924BB88}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E1EE3FA-1599-4322-B33D-8B598924BB88}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E1EE3FA-1599-4322-B33D-8B598924BB88}.Release|Any CPU.Build.0 = Release|Any CPU + {938BC277-52D7-4EFC-BECD-8D1901EAD397}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {938BC277-52D7-4EFC-BECD-8D1901EAD397}.Debug|Any CPU.Build.0 = Debug|Any CPU + {938BC277-52D7-4EFC-BECD-8D1901EAD397}.Release|Any CPU.ActiveCfg = Release|Any CPU + {938BC277-52D7-4EFC-BECD-8D1901EAD397}.Release|Any CPU.Build.0 = Release|Any CPU + {5F478978-6103-4BBD-B754-3146DC02F776}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F478978-6103-4BBD-B754-3146DC02F776}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F478978-6103-4BBD-B754-3146DC02F776}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F478978-6103-4BBD-B754-3146DC02F776}.Release|Any CPU.Build.0 = Release|Any CPU + {F6F8B9FF-BAD2-4378-8586-1A3E60375557}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6F8B9FF-BAD2-4378-8586-1A3E60375557}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6F8B9FF-BAD2-4378-8586-1A3E60375557}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6F8B9FF-BAD2-4378-8586-1A3E60375557}.Release|Any CPU.Build.0 = Release|Any CPU + {6C7D24B6-B9B1-4F96-A4FF-A9994F6B1801}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C7D24B6-B9B1-4F96-A4FF-A9994F6B1801}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C7D24B6-B9B1-4F96-A4FF-A9994F6B1801}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C7D24B6-B9B1-4F96-A4FF-A9994F6B1801}.Release|Any CPU.Build.0 = Release|Any CPU + {477C0E7B-8542-4B12-AF5D-D7220F8908D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {477C0E7B-8542-4B12-AF5D-D7220F8908D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {477C0E7B-8542-4B12-AF5D-D7220F8908D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {477C0E7B-8542-4B12-AF5D-D7220F8908D6}.Release|Any CPU.Build.0 = Release|Any CPU + {780E2867-4EC4-420C-A116-959826DE2015}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {780E2867-4EC4-420C-A116-959826DE2015}.Debug|Any CPU.Build.0 = Debug|Any CPU + {780E2867-4EC4-420C-A116-959826DE2015}.Release|Any CPU.ActiveCfg = Release|Any CPU + {780E2867-4EC4-420C-A116-959826DE2015}.Release|Any CPU.Build.0 = Release|Any CPU + {4BF5287A-52FF-4DF1-9C23-70F0EC0F620B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BF5287A-52FF-4DF1-9C23-70F0EC0F620B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BF5287A-52FF-4DF1-9C23-70F0EC0F620B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BF5287A-52FF-4DF1-9C23-70F0EC0F620B}.Release|Any CPU.Build.0 = Release|Any CPU + {1C840A7E-8AC1-47F9-AD84-9521D91D3594}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C840A7E-8AC1-47F9-AD84-9521D91D3594}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C840A7E-8AC1-47F9-AD84-9521D91D3594}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C840A7E-8AC1-47F9-AD84-9521D91D3594}.Release|Any CPU.Build.0 = Release|Any CPU + {AF7FF555-8B13-4C9C-9C1E-1685449E0B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF7FF555-8B13-4C9C-9C1E-1685449E0B50}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF7FF555-8B13-4C9C-9C1E-1685449E0B50}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF7FF555-8B13-4C9C-9C1E-1685449E0B50}.Release|Any CPU.Build.0 = Release|Any CPU + {2D2C9F96-471C-4BE6-BB6D-BDA7DEE8F985}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D2C9F96-471C-4BE6-BB6D-BDA7DEE8F985}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D2C9F96-471C-4BE6-BB6D-BDA7DEE8F985}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D2C9F96-471C-4BE6-BB6D-BDA7DEE8F985}.Release|Any CPU.Build.0 = Release|Any CPU + {4B334357-EFF1-4C7E-871D-421D469ED12E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B334357-EFF1-4C7E-871D-421D469ED12E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B334357-EFF1-4C7E-871D-421D469ED12E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B334357-EFF1-4C7E-871D-421D469ED12E}.Release|Any CPU.Build.0 = Release|Any CPU + {78595B16-7D12-44FB-AD7F-8822979E83D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78595B16-7D12-44FB-AD7F-8822979E83D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78595B16-7D12-44FB-AD7F-8822979E83D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78595B16-7D12-44FB-AD7F-8822979E83D9}.Release|Any CPU.Build.0 = Release|Any CPU + {B5B0A6BF-1386-4749-B5CF-EF0C7200E661}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5B0A6BF-1386-4749-B5CF-EF0C7200E661}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5B0A6BF-1386-4749-B5CF-EF0C7200E661}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5B0A6BF-1386-4749-B5CF-EF0C7200E661}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0A133EE0-88EE-4188-852D-959733E043CA} + EndGlobalSection +EndGlobal diff --git a/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/08_Task Home 1 - Среднее арифметическое двух чисел.csproj b/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/08_Task Home 1 - Среднее арифметическое двух чисел.csproj new file mode 100644 index 0000000..ffa894d --- /dev/null +++ b/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/08_Task Home 1 - Среднее арифметическое двух чисел.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {F55F7A32-FC19-47A6-A9C1-07C5FEB2C394} + Exe + Task_Home_1___Среднее_арифметическое_двух_чисел + Task Home 1 - Среднее арифметическое двух чисел + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/App.config b/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/Program.cs b/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/Program.cs new file mode 100644 index 0000000..ac79d9b --- /dev/null +++ b/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/Program.cs @@ -0,0 +1,28 @@ +using System; + +/* + * 1. Напишите программу, вычисляющую среднее арифметическое двух чисел. + */ +class Program +{ + static void Main() + { + double firstValue, secondValue, result_arifm; + + Console.WriteLine("Введите число 1"); + + bool num_1 = double.TryParse(Console.ReadLine(), out firstValue); + + Console.WriteLine("Введите число 2"); + + bool num_2 = double.TryParse(Console.ReadLine(), out secondValue); + + result_arifm = (firstValue + secondValue) / 2; + + Console.WriteLine((num_1 && num_2) ? "Среднее арифметическое двух чисел: " + result_arifm : + "Строки содержат неверные символы!" + + Environment.NewLine + + "Среднее арифметическое двух чисел: " + result_arifm); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/Properties/AssemblyInfo.cs b/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..141c70a --- /dev/null +++ b/LessonsAndTasks/Task Home 1 - Среднее арифметическое двух чисел/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Task Home 1 - Среднее арифметическое двух чисел")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Task Home 1 - Среднее арифметическое двух чисел")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("f55f7a32-fc19-47a6-a9c1-07c5feb2c394")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и сумму/Program.cs b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и сумму/Program.cs new file mode 100644 index 0000000..f95724a --- /dev/null +++ b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и сумму/Program.cs @@ -0,0 +1,38 @@ +using System; + + +/* + * 2. Введите три числа и выведите на экран значение суммы и произведения этих чисел. + */ + +namespace Task_Home_2___Введите_три_числа_и_выведите_их_произведение_и_сумму +{ + class Program + { + static void Main(string[] args) + { + //#2 + int g1, g2, g3, res_sum, res_multy; + // 1 ошибка - названия переменных g1 g2 g3 на firstValue secondValue thirdValue + + Console.WriteLine("Введите число 1: "); + + int.TryParse(Console.ReadLine(), out g1); + + Console.WriteLine("Введите число 2: "); + + int.TryParse(Console.ReadLine(), out g2); + + Console.WriteLine("Введите число 3: "); + + int.TryParse(Console.ReadLine(), out g3); + + res_sum = g1 + g2 + g3; + res_multy = g1 * g2 * g3; + + Console.WriteLine("Результат суммы чисел: " + res_sum); + + Console.WriteLine("Результат умножения чисел: " + res_multy); + } + } +} diff --git a/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и сумму/Task Home 2 - Введите три числа и выведите их произведение и сумму.csproj b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и сумму/Task Home 2 - Введите три числа и выведите их произведение и сумму.csproj new file mode 100644 index 0000000..15dda50 --- /dev/null +++ b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и сумму/Task Home 2 - Введите три числа и выведите их произведение и сумму.csproj @@ -0,0 +1,9 @@ + + + + Exe + netcoreapp1.1 + Task_Home_2___Введите_три_числа_и_выведите_их_произведение_и_сумму + + + diff --git a/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/08_Task Home 2 - Введите три числа и выведите их произведение и суммы.csproj b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/08_Task Home 2 - Введите три числа и выведите их произведение и суммы.csproj new file mode 100644 index 0000000..f4a7140 --- /dev/null +++ b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/08_Task Home 2 - Введите три числа и выведите их произведение и суммы.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {DA90C9B8-A37B-41F1-98E1-25EF68A3A3CC} + Exe + Task_Home_2___Введите_три_числа_и_выведите_их_произведение_и_суммы + Task Home 2 - Введите три числа и выведите их произведение и суммы + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/App.config b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/Program.cs b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/Program.cs new file mode 100644 index 0000000..64abc4b --- /dev/null +++ b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/Program.cs @@ -0,0 +1,31 @@ +using System; + +/* + * 2. Введите три числа и выведите на экран значение суммы и произведения этих чисел. + */ +class Program +{ + static void Main() + { + int firstValue, secondValue, thirdValue, res_sum, res_multy; + + Console.WriteLine("Введите число 1: "); + + int.TryParse(Console.ReadLine(), out firstValue); + + Console.WriteLine("Введите число 2: "); + + int.TryParse(Console.ReadLine(), out secondValue); + + Console.WriteLine("Введите число 3: "); + + int.TryParse(Console.ReadLine(), out thirdValue); + + res_sum = firstValue + secondValue + thirdValue; + res_multy = firstValue * secondValue * thirdValue; + + Console.WriteLine("Результат суммы чисел: " + res_sum); + Console.WriteLine("Результат умножения чисел: " + res_multy); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/Properties/AssemblyInfo.cs b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..01cf6f6 --- /dev/null +++ b/LessonsAndTasks/Task Home 2 - Введите три числа и выведите их произведение и суммы/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Task Home 2 - Введите три числа и выведите их произведение и суммы")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Task Home 2 - Введите три числа и выведите их произведение и суммы")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("da90c9b8-a37b-41f1-98e1-25ef68a3a3cc")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Task Home 3 - Конвертер валют/Program.cs b/LessonsAndTasks/Task Home 3 - Конвертер валют/Program.cs new file mode 100644 index 0000000..3f48747 --- /dev/null +++ b/LessonsAndTasks/Task Home 3 - Конвертер валют/Program.cs @@ -0,0 +1,28 @@ +using System; + + +/* + * 3. Напишите простой конвертер валют + * (без возможности динамического выбора валюты пользователем). + * Валюты заданы хардкодом и не изменяются. Тип валют на выбор программиста. + */ + +namespace Task_Home_3___Конвертер_валют +{ + class Program + { + static void Main(string[] args) + { + //#3 + double ruble, dollar; + + Console.WriteLine("Введите количество рублей: "); + + double.TryParse(Console.ReadLine(), out ruble); + + dollar = ruble * 0.014; + + Console.WriteLine("Долларов: " + dollar); + } + } +} diff --git a/LessonsAndTasks/Task Home 3 - Конвертер валют/Task Home 3 - Конвертер валют.csproj b/LessonsAndTasks/Task Home 3 - Конвертер валют/Task Home 3 - Конвертер валют.csproj new file mode 100644 index 0000000..5af9667 --- /dev/null +++ b/LessonsAndTasks/Task Home 3 - Конвертер валют/Task Home 3 - Конвертер валют.csproj @@ -0,0 +1,9 @@ + + + + Exe + netcoreapp1.1 + Task_Home_3___Конвертер_валют + + + diff --git a/LessonsAndTasks/Task Home 3 - Конвертер валюты/08_Task Home 3 - Конвертер валюты.csproj b/LessonsAndTasks/Task Home 3 - Конвертер валюты/08_Task Home 3 - Конвертер валюты.csproj new file mode 100644 index 0000000..4dcda96 --- /dev/null +++ b/LessonsAndTasks/Task Home 3 - Конвертер валюты/08_Task Home 3 - Конвертер валюты.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {45F5A326-539B-4E99-9A7A-5875EE60E13B} + Exe + Task_Home_3___Конвертер_валюты + Task Home 3 - Конвертер валюты + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 3 - Конвертер валюты/App.config b/LessonsAndTasks/Task Home 3 - Конвертер валюты/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Task Home 3 - Конвертер валюты/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 3 - Конвертер валюты/Program.cs b/LessonsAndTasks/Task Home 3 - Конвертер валюты/Program.cs new file mode 100644 index 0000000..012f775 --- /dev/null +++ b/LessonsAndTasks/Task Home 3 - Конвертер валюты/Program.cs @@ -0,0 +1,23 @@ +using System; + +/* + * 3. Напишите простой конвертер валют + * (без возможности динамического выбора валюты пользователем). + * Валюты заданы хардкодом и не изменяются. Тип валют на выбор программиста. + */ +class Program +{ + static void Main() + { + double ruble, dollar; + + Console.WriteLine("Введите количество рублей: "); + + double.TryParse(Console.ReadLine(), out ruble); + + dollar = ruble * 0.014; + + Console.WriteLine("Долларов: " + dollar); + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 3 - Конвертер валюты/Properties/AssemblyInfo.cs b/LessonsAndTasks/Task Home 3 - Конвертер валюты/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..2ddb958 --- /dev/null +++ b/LessonsAndTasks/Task Home 3 - Конвертер валюты/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Task Home 3 - Конвертер валюты")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Task Home 3 - Конвертер валюты")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("45f5a326-539b-4e99-9a7a-5875ee60e13b")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/App.config b/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/Program.cs b/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/Program.cs new file mode 100644 index 0000000..1eb7606 --- /dev/null +++ b/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/Program.cs @@ -0,0 +1,21 @@ +using System; + +class Program +{ + static void Main() + { + int a; + + a = int.Parse(Console.ReadLine()); + + if (a % 2 == 1) + { + Console.WriteLine("Не чётное"); + } + else + { + Console.WriteLine("Чётное"); + } + Console.ReadKey(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/Properties/AssemblyInfo.cs b/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..73866d1 --- /dev/null +++ b/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанные с этой сборкой. +[assembly: AssemblyTitle("Task Home 4 - Проверка числа на чётность")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Task Home 4 - Проверка числа на чётность")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// из модели COM задайте для атрибута ComVisible этого типа значение true. +[assembly: ComVisible(false)] + +// Следующий GUID представляет идентификатор typelib, если этот проект доступен из модели COM +[assembly: Guid("9124a33f-1f0d-4788-8cd8-156ae083d304")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Номер редакции +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/Task Home 4 - Проверка числа на чётность.csproj b/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/Task Home 4 - Проверка числа на чётность.csproj new file mode 100644 index 0000000..930101f --- /dev/null +++ b/LessonsAndTasks/Task Home 4 - Проверка числа на чётность/Task Home 4 - Проверка числа на чётность.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {9124A33F-1F0D-4788-8CD8-156AE083D304} + Exe + Task_Home_4___Проверка_числа_на_чётность + Task Home 4 - Проверка числа на чётность + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/App.config b/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/Program.cs b/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/Program.cs new file mode 100644 index 0000000..faf7e36 --- /dev/null +++ b/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/Program.cs @@ -0,0 +1,97 @@ +using System; + +/* + * пишем калькулятор C# + */ +class Program +{ + static void Main() + { + while (true) + { + Console.Clear(); + double a, b, result; + string action; + try + { + //if else + Console.WriteLine(value: "Введите первое число"); + a = double.Parse(Console.ReadLine()); + Console.WriteLine(value: "Введите первое число"); + b = double.Parse(Console.ReadLine()); + Console.WriteLine(value: "Действие + - % * /"); + action = Console.ReadLine(); + result = 0; + + if (action == "+") + { + result = a + b; + } + else if (action == "-") + { + result = a - b; + } + else if (action == "%") + { + result = a % b; + } + else if (action == "*") + { + result = a * b; + } + else if (action == "/") + { + if (b == 0) + result = 0; + else + result = a / b; + } + else + { + Console.WriteLine(Environment.NewLine + "Я не знаю!"); + } + Console.WriteLine("Результат if else: " + result); + + //switch + Console.WriteLine(Environment.NewLine + "Введите действие + - * % /" + Environment.NewLine); + + ConsoleKey consoleKey = Console.ReadKey().Key; + switch (consoleKey) + { + case ConsoleKey.Add: + case ConsoleKey.OemPlus: + result = a + b; + break; + case ConsoleKey.Subtract: + case ConsoleKey.OemMinus: + result = a - b; + break; + case ConsoleKey.Multiply: + result = a * b; + break; + case ConsoleKey.Divide: + if (b == 0) + result = 0; + else + result = a / b; + break; + case ConsoleKey.D5: + result = a % b; + break; + default: + Console.WriteLine(Environment.NewLine + "Я не знаю!"); + break; + } + + Console.WriteLine(Environment.NewLine + "Результат switch: " + result); + } + catch (Exception) + { + Console.WriteLine("Ошибка!"); + continue; + } + + Console.ReadLine(); + } + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/Properties/AssemblyInfo.cs b/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e89c1e7 --- /dev/null +++ b/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанные с этой сборкой. +[assembly: AssemblyTitle("Task Home 5 - Калькулятор Switch и на If Else")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Task Home 5 - Калькулятор Switch и на If Else")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// из модели COM задайте для атрибута ComVisible этого типа значение true. +[assembly: ComVisible(false)] + +// Следующий GUID представляет идентификатор typelib, если этот проект доступен из модели COM +[assembly: Guid("c9595bde-8d44-4ef8-8451-ebeeee2e31d2")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Номер редакции +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/Task Home 5 - Калькулятор Switch и на If Else.csproj b/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/Task Home 5 - Калькулятор Switch и на If Else.csproj new file mode 100644 index 0000000..f9c35fd --- /dev/null +++ b/LessonsAndTasks/Task Home 5 - Калькулятор Switch и на If Else/Task Home 5 - Калькулятор Switch и на If Else.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {C9595BDE-8D44-4EF8-8451-EBEEEE2E31D2} + Exe + Task_Home_5___Калькулятор_Switch_и_на_If_Else + Task Home 5 - Калькулятор Switch и на If Else + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/App.config b/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/Program.cs b/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/Program.cs new file mode 100644 index 0000000..d4c0925 --- /dev/null +++ b/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/Program.cs @@ -0,0 +1,93 @@ +using System; + +/* + * Треугольники в консоли + */ +class Program +{ + static void Main() + { + Console.Write("Ввелите высоту треугольника: "); + int height = int.Parse(Console.ReadLine()); + + for (int r = 0; r < height; r++) + { + for (int rr = 0; rr <= r; rr++) + { + Console.Write("#"); + } + + Console.WriteLine(); + + } + + Console.WriteLine(); + Console.WriteLine(); + + for (int r = height; r > 0; r--) + { + for (int rr = 0; rr < r; rr++) + { + Console.Write("#"); + } + + Console.WriteLine(); + } + + Console.WriteLine(); + Console.WriteLine(); + + for (int r = height; r > 0; r--) + { + for (int rr = 1; rr < r; rr++) + { + Console.Write(" "); + } + + for (int rrr = 0; rrr < (height + 1) - r; rrr++) + { + Console.Write("#"); + } + + Console.WriteLine(); + } + + Console.WriteLine(); + Console.WriteLine(); + //Cheat + Console.ReadLine(); + Console.Clear(); + + for (int r = 1; r <= height; r++) + { + Console.SetCursorPosition(height - r, r - 1); + + for (int rrr = 0; rrr < r; rrr++) + { + Console.Write("#"); + } + } + + Console.WriteLine(); + Console.WriteLine(); + Console.ReadLine(); + Console.Clear(); + + for (int r = 0; r < height; r++) + { + for (int rr = 0; rr < r; rr++) + { + Console.Write(" "); + } + + for (int rrr = 0; rrr < height - r; rrr++) + { + Console.Write("#"); + } + + Console.WriteLine(); + } + + Console.ReadLine(); + } +} \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/Properties/AssemblyInfo.cs b/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7af2b50 --- /dev/null +++ b/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Task Home 6 - Как нарисовать треугольник в консоли")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Task Home 6 - Как нарисовать треугольник в консоли")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("4ffddb39-d141-4eea-acc3-767c5be4d955")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/Task Home 6 - Как нарисовать треугольник в консоли.csproj b/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/Task Home 6 - Как нарисовать треугольник в консоли.csproj new file mode 100644 index 0000000..0506f41 --- /dev/null +++ b/LessonsAndTasks/Task Home 6 - Как нарисовать треугольник в консоли/Task Home 6 - Как нарисовать треугольник в консоли.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {4FFDDB39-D141-4EEA-ACC3-767C5BE4D955} + Exe + Task_Home_6___Как_нарисовать_треугольник_в_консоли + Task Home 6 - Как нарисовать треугольник в консоли + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/App.config b/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/Program.cs b/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/Program.cs new file mode 100644 index 0000000..6358f7b --- /dev/null +++ b/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/Program.cs @@ -0,0 +1,38 @@ +using System; + +/* + * Сумма чётных и нечётных чисел в диапазоне + */ + +namespace Task_Home_6___Сумма_чётных_и_нечётных_чисел_в_диапазоне +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Введите число"); + int num = int.Parse(Console.ReadLine()); + + int count = 0, num_even = 0, num_odd = 0; + + //чётные + double num_even_progressia = 0; + double num_odd_progressia = 0; + num_even_progressia = (1 + (num / 2)) * num / 2; + num_odd_progressia = (0.5 + ((double)(num - 1) / 2)) * num / 2; + Console.WriteLine($"Чётных прогрессия - {num_even_progressia}, Нечётных прогрессия - {num_odd_progressia}"); + + while(count < num) + { + count++; + if (count % 2 != 1) //Чётное + num_even += count; + else + num_odd += count; + } + Console.WriteLine($"Чётных - {num_even}, Нечётных - {num_odd}"); + + Console.ReadLine(); + } + } +} diff --git a/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/Properties/AssemblyInfo.cs b/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..dabd735 --- /dev/null +++ b/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("Task Home 6 - Сумма чётных и нечётных чисел в диапазоне")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Task Home 6 - Сумма чётных и нечётных чисел в диапазоне")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("8b19b5e5-ce0a-4bfa-80f2-2da63f6aeb7c")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне.csproj b/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне.csproj new file mode 100644 index 0000000..ddd6bb8 --- /dev/null +++ b/LessonsAndTasks/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне/Task Home 6 - Сумма чётных и нечётных чисел в диапазоне.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {8B19B5E5-CE0A-4BFA-80F2-2DA63F6AEB7C} + Exe + Task_Home_6___Сумма_чётных_и_нечётных_чисел_в_диапазоне + Task Home 6 - Сумма чётных и нечётных чисел в диапазоне + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..5ffcc78 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +

+

+ Banner + +

+ Typing SVG +

+

+ Static Badge + +

+

+ +# Разбор языка программирования C# 🍧 + +## 🔰 Зависимости +- runtime-5.0.17 - **.NET 5.0 Desktop** - где [**скачать?**](https://dotnet.microsoft.com/en-us/download/dotnet/5.0/runtime?cid=getdotnetcore&os=windows&arch=x64) +- полезная инфа - https://disk.yandex.ru/d/JO805r1zUVZ-XQ + +## ♨️ Содержание + +### Темы 🏀 + + +- 💥 Типы данных +- 💥 Переменные в языке +- 💥 Разбор классов **Convert, Parse, TryParse** +- 💥 Арифметические операции с числами и их приоритет выполнения +- 💥 Создание несколько проектов в одном решении +- 💥 Постфиксный и префиксный инкремент и декремент +- 💥 **Операторы** и **операции сравнения** +- 💥 Логические **операторы** и сокращённые логические операции +- 💥 Тернарный **оператор** и его примеры +- 💥 **Оператор** присваивания и объединения со значением NULL +- 💥 **Операторы** - as и is +- 💥 Конструкции **if~else**, **switch** +- 💥 Циклы **while**, **do~while**, **for** и **for** - в обратном порядке, **вложенные циклы** +- 💥 Ключевые слова **break**, **contine**, **ref**, **out**, **params**, **this**, **base**, **this в конструкторе**, модификатор **in** +- 💥 Массивы - **одномерные**, **многомерные**, **ступенчатые(зубчатые)** и **трёхмерные** +- 💥 **Перегрузка** методов +- 💥 Область видимости, контекст переменной, конфликт областей +- 💥 **Ссылочные** и **значимые** типы, **стек** и **куча** +- 💥 Что такое **NULL** +- 💥 Варианты параметров метода +- 💥 Что такое **рекурсия**, переполнение стека +- 💥 Преобразование и приведение, явное и неявное +- 💥 Арифметическое переполнение, **checked** и **unchecked** +- 💥 Что такое **Nullable**, Null совместимые значимые типы Nullable +- 💥 **Var** - неявно типизированные переменные +- 💥 **Еnum** - что это, и для чего нужно +- 💥 Что такое **Class**(ООП), **объект(object)**, **экземпляр** класса +- 💥 **Методы** и **классы**, **вызов метода** экземпляра класса +- 💥 Модификаторы доступа - **public**, **protected**, **private** +- 💥 **Инкапсуляция** с примерами +- 💥 Что такое **конструктор** класса +- 💥 **Перегрузка конструкторов** класса +- 💥 **Полиморфизм** с примерами +- 💥 Виртуальные методы, **virtual** и **override** +- 💥 **Абстрактные(abstract) классы** +- 💥 **Интерфейсы(interface)**, зачем нужны и как используются +- 💥 **Наследование** интерфейсов, **множественное наследование** +- 💥 Структуры(struct) и классы(class) - **отличия** +- 💥 **Упаковка(boxing)** и **распаковка(unboxing)** значимых(value)типов +- 💥 Обобщения, **Generic** типы, методы и классы + +### Задачи ⚽ + +- 🌟 Среднее арифметическое двух чисел +- 🌟 Введите три числа и выведите их произведение и суммы +- 🌟 Конвертер валюты +- 🌟 Проверка числа на чётность +- 🌟 Калькулятор на **Switch** и **If~Else** +- 🌟 Как нарисовать треугольник в консоли + +Данная информация по C# проработанна мной с плейлиста грамотного канала 👊 [#SimpleCode](https://www.youtube.com/playlist?list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N) 👊 \ No newline at end of file