Maison > Article > développement back-end > Programmation avancée C# (2) - Explication détaillée du noyau C#
C# dispose de deux méthodes pour garantir que les variables sont initialisées avant utilisation Initialisées :
Les variables sont des champs qui, s'ils ne sont pas explicitement initialisés, ont une valeur par défaut de 0 lors de leur création.
La variable locale de la méthode doit être explicitement initialisée dans le code avant de pouvoir être utilisée dans l'instruction. Si sa valeur est utilisée avant l'initialisation, une erreur. sera signalé.
Si la portée de la variable locale est en conflit, une erreur CS0136 sera signalée.
Le champ est en conflit avec les variables locales, masquez le champ, utilisez ce mot-clé pour accéder au champ d'instance masqué et utilisez object.fieldname pour les champs statiques.
Les constantes doivent être initialisées lorsqu'elles sont déclarées et les modifications ne sont pas autorisées une fois leurs valeurs attribuées.
La valeur d'une constante doit être utilisée dans les calculs au moment de la compilation, la valeur ne peut pas être extraite d'une variable.
Les constantes sont toujours statiques et ne peuvent pas être modifiées à l'aide du mot-clé static.
Facile à lire
Facile à modifier
Facile à éviter les erreurs
La différence entre les types valeur et les types référence
Reportez-vous à Chapitre 1.
Pour créer un objet vous devez utiliser le mot-clé nouveau pour ajouter une référence L'attribution d'un type à un autre type référence renvoie uniquement son adresse, qui change à mesure qu'elle change. Par exemple :
Test x,y; x testX = new Test(); y testY = x; testX.value =1; //这条语句执行后testX与testY的value属性的值都会为
Les types prédéfinis de base reconnus par C# ne sont pas intégrés à C#, mais sont intégrés à . NET-cadre.
Decimal n'est pas un type intégré dans .NET Formework et entraînera une perte de performances.
Le type booléen ne peut pas utiliser 0 pour représenter faux, et non-0 représente vrai.
Tous les types intégrés héritent du type Object.
L'immuabilité de la chaîne : Si testX et testY dans le code ci-dessus sont de type chaîne, lorsque la chaîne pointée par testX change, une nouvelle sera créée dans le tas géré. chaîne et pointez dessus, la valeur pointée par testY ne sera pas modifiée.
if, else if, else.
La valeur de l'instruction case doit être une expression constante, les variables ne sont pas autorisées.
与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:类中的字段(最好加“_”为前缀能更直观的知道这是个字段)、方法的参数。
Le nom/style de dénomination doit être aussi cohérent que possible.
Les espaces de noms sont le seul moyen par lequel .NET peut distinguer les noms d'objets dans les assemblys partagés.
Microsoft recommande d'utiliser l'espace de noms suivant : d04661e771feadb793ae73b35fbaae73.72f679de98f4cda0c0a9d332c4b5adaa
Omis
Si l'objet ressemble à un objet, utilisez des attributs pour le représenter, c'est-à-dire :
La réforme médicale du client peut lire sa valeur, il est préférable de ne pas utiliser d'attributs en écriture seule.
La lecture de cette valeur ne devrait pas lui prendre beaucoup de temps.
Il ne devrait y avoir aucun effet négatif.
Les propriétés peuvent être définies dans n'importe quel ordre.
La lecture séquentielle des propriétés devrait avoir le même effet.
Utilisation du champ
Les champs doivent toujours être privés.
07/05/2016 22:29:18
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!