Heim  >  Artikel  >  Backend-Entwicklung  >  C# Advanced Programming (2) – Detaillierte Erläuterung des Kerns von C#

C# Advanced Programming (2) – Detaillierte Erläuterung des Kerns von C#

黄舟
黄舟Original
2017-03-20 11:22:231239Durchsuche

Initialisierung und Umfang von Variablen

Initialisierung

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.

Geltungsbereich

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

Eigenschaften von Konstanten:

    • 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.

Vorteile von Konstanten:

    • Leicht lesbar

    • Einfach zu ändern

    • Einfach Fehler zu vermeiden

Vordefinierte Datentypen

Der Unterschied zwischen Werttypen und Referenztypen

Siehe Kapitel 1.

Referenztyp

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属性的值都会为

CTS-Typ

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.

Flusskontrolle

Bedingte Anweisung

if, else if, else.

Switch-Anweisung

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#编程规则

标识符规则

    • 可以包含数字字符,但是它们他们必须以字母或下划线开头。

    • 不能使用C#关键字作标识符。

用户约定

规则应该是一个正确的决策,而不是一种束缚。


    1. 命名约定

Pascal:名称空间、类、函数名。

Camel:类中的字段(最好加“_”为前缀能更直观的知道这是个字段)、方法的参数。


    1. Namensstil

Der Name/Benennungsstil sollte möglichst einheitlich sein.


    1. Der Name des Namespace

Namespaces sind die einzige Möglichkeit, mit der .NET Objektnamen in gemeinsam genutzten Assemblys unterscheiden kann.

Microsoft empfiehlt die Verwendung des folgenden Namespace: d04661e771feadb793ae73b35fbaae73.72f679de98f4cda0c0a9d332c4b5adaa


    1. Name und Schlüsselwörter

Weggelassen

Verwendung von Attributen und Methoden

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn