C# verfügt über zwei Methoden, um sicherzustellen, dass Variablen vor der Verwendung initialisiert werden:
Variablen sind Felder, die, wenn sie nicht explizit initialisiert werden, bei ihrer Erstellung den Standardwert 0 haben.
Die lokale Variable der Methode muss im Code explizit initialisiert werden, bevor sie in der Anweisung verwendet werden kann. Wenn ihr Wert vor der Initialisierung verwendet wird, tritt ein Fehler auf wird gemeldet.
Wenn der Geltungsbereich der lokalen Variablen in Konflikt steht, wird ein CS0136-Fehler gemeldet.
Das Feld steht in Konflikt mit lokalen Variablen. Blenden Sie das Feld aus, verwenden Sie dieses Schlüsselwort, um auf das ausgeblendete Instanzfeld zuzugreifen, und verwenden Sie object.fieldname für statische Felder.
Konstanten müssen bei der Deklaration initialisiert werden und dürfen nach der Zuweisung ihrer Werte nicht geändert werden.
Der Wert einer Konstante muss in Berechnungen zur Kompilierungszeit verwendet werden, der Wert kann nicht aus einer Variablen extrahiert werden.
Konstanten sind immer statisch und dürfen nicht mit dem Schlüsselwort static geändert werden.
Leicht lesbar
Einfach zu ändern
Einfach Fehler zu vermeiden
Der Unterschied zwischen Werttypen und Referenztypen
Siehe Kapitel 1.
Um ein Objekt zu erstellen müssen Sie zum Hinzufügen das Schlüsselwort new verwenden Eine Referenz. Wenn Sie einen Typ einem anderen Referenztyp zuweisen, wird nur dessen Adresse zurückgegeben, die sich bei Änderungen ändert. Zum Beispiel:
Test x,y; x testX = new Test(); y testY = x; testX.value =1; //这条语句执行后testX与testY的value属性的值都会为
Die von C# erkannten grundlegenden vordefinierten Typen sind nicht in C# integriert, sondern in . NET Framework.
Decimal ist kein integrierter Typ in .NET Formework und führt zu Leistungseinbußen.
Der Bool-Typ kann nicht 0 verwenden, um falsch darzustellen, und ein Wert ungleich 0 stellt wahr dar.
Alle integrierten Typen erben den Objekttyp.
Die Unveränderlichkeit von Zeichenfolgen: Wenn testX und testY im obigen Code vom Typ Zeichenfolge sind, wird bei einer Änderung der Zeichenfolge, auf die testX zeigt, eine neue im verwalteten Heap erstellt. string und zeigen Sie darauf, der Wert, auf den testY zeigt, wird nicht geändert.
if, else if, else.
Der Wert der Case-Anweisung muss ein konstanter Ausdruck sein, Variablen sind nicht zulässig.
与C++的区别:激活了前一个case不会自动激活后一个case,且每一个case必须用break否则报错;可以把字符串作为测试变量。
可以使用goto "标签"经行跳转。
case为空则不需要break。
循环
for 与 while的区别:for适合可预测次数的循环,while适合不可预测次数的循环。
foreach
要实现foreach的遍历,类中就必须实现IEnumerable接口。
foreach中不能改变每一项的值。
goto
break
跳出当前循环
continue
跳过此次循环
return
退出当前方法
一旦代码编辑好,枚举就成为基本类型。
与文件或组件不同,名称空间是一种逻辑组合,而不是物理组合。
一般名称空间可接受的格式为CompanyName.ProjectName.StstemSection。
名称空间别名的语法:
using slias = NamespaceName;
命名空间修饰符为 “::” 。
1 //using System; 2 using TestSystem = System; 3 4 namespace 命名空间别名 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 TestSystem::Console.WriteLine("This is a C# Progam"); 11 TestSystem.Console.ReadKey(); 12 } 13 } 14 }
命名空间别名演示
#if #elif 支持一组逻辑运算符“!”、“==”、“!+”、“||”。
可以包含数字字符,但是它们他们必须以字母或下划线开头。
不能使用C#关键字作标识符。
规则应该是一个正确的决策,而不是一种束缚。
Pascal:名称空间、类、函数名。
Camel:类中的字段(最好加“_”为前缀能更直观的知道这是个字段)、方法的参数。
Der Name/Benennungsstil sollte möglichst einheitlich sein.
Namespaces sind die einzige Möglichkeit, mit der .NET Objektnamen in gemeinsam genutzten Assemblys unterscheiden kann.
Microsoft empfiehlt die Verwendung des folgenden Namespace:
Weggelassen
Wenn das Objekt wie ein Objekt aussieht, verwenden Sie Attribute, um es darzustellen, das heißt:
Die medizinische Reform des Kunden kann seinen Wert lesen. Es ist am besten, keine schreibgeschützten Attribute zu verwenden.
Das Lesen dieses Wertes sollte nicht lange dauern.
Es sollten keine negativen Auswirkungen auftreten.
Eigenschaften können in beliebiger Reihenfolge festgelegt werden.
Das sequentielle Lesen von Eigenschaften sollte den gleichen Effekt haben.
Verwendung des Feldes
Felder sollten immer privat sein.
2016-05-07 22:29:18
Das obige ist der detaillierte Inhalt vonC# Advanced Programming (2) – Detaillierte Erläuterung des Kerns von C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!