Résumé des connaissances de base de C# (basé sur le langage C)

Préface

Cet article porte sur les connaissances de base du langage C#. Il s'agit d'un résumé basé sur une certaine connaissance du langage C ou C++. Par conséquent, de nombreuses connaissances de base du langage C seront omises. Cependant, certaines connaissances propres au C# ou relativement rares ou importantes dans Le langage C sera également résumé dans le billet de blog.

Héritez des connaissances d'introduction C# ci-dessus https://blog.csdn.net/danielxinhj/article/details/130401403

Table des matières

1. Types de données complexes

1. Énumération

une définition

b.Déclaration

c. Conversion de type d'énumération (pas couramment utilisée)

2.Tableau

a. Tableau entrelacé (nécessite presque tout intérêt pour comprendre)

2. Valeurs et références

1. Chaîne de type de référence spéciale

3. Fonction

1. Fonctions avec paramètres et plusieurs valeurs de retour

4. réf et sortie

1.ref est un modificateur des paramètres de fonction

2.out est également un modificateur de paramètre de fonction

5. Paramètres de longueur variable et valeurs par défaut des paramètres

1. Mot-clé de paramètre de longueur variable 

2. Valeurs par défaut des paramètres

6. Surcharge de fonctions

7. Structure

1. Modificateurs d'accès

2. Constructeur de structures


1. Types de données complexes

Deux types:

  1. Collecte de données : données composées de plusieurs données (variables) rassemblées.
  2. Personnalisation : vous pouvez choisir votre propre nom et des données personnalisées (variables).

Y compris : énumération, tableau, structure

1. Énumération

une définition

Il s'agit d'une collection de constantes entières nommées, généralement le statut et le type.

//枚举名 以E或者E_开头,作为我们的命名规范
enum E_自定义枚举名
{
    自定义枚举项名字1, //默认第一个值是0 下面依次累加
    自定义枚举项名字2,
    自定义枚举项名字3,
}

Si vous attribuez une valeur à l'un des éléments de l'énumération, les éléments suivants seront incrémentés sur cette base, à moins qu'elle ne soit à nouveau modifiée artificiellement.

b.Déclaration

  • Généralement déclaré dans le bloc d'instructions de l'espace de noms 
  • Peut être utilisé dans le bloc d'instructions de classe
  • Peut être utilisé dans le bloc d'instructions struct
  • Ne peut pas être déclaré dans une fonction ! ! !

Formule : Nom de la variable de type d'énumération personnalisé = valeur par défaut ; (Type d'énumération personnalisé. Élément d'énumération)

enum E_PlayerType
{
    Main, //默认第一个值是0 下面依次累加
    Other,
}
E_PlayerType playerType = E_PlayerType.Main;

Les énumérations et les instructions switch sont très appropriées. Écrivez les constantes entre parenthèses switch et elles seront automatiquement complétées plus tard.

c. Conversion de type d'énumération (pas couramment utilisée)

// 枚举和int互转
int i = (int)playerType;
Console.WriteLine(i);

// 枚举和string相互转换
string str = playerType.ToString();
Console.WriteLine(str);

// string转为枚举
// Parse后 第一个参数:你要转为的是哪个 枚举类型 第二个参数:用于转换的对应枚举项的字符串
playerType = (E_PlayerType)Enum.Parse(typeof(E_PlayerType),"other");

2.Tableau

Le même principe que les tableaux en langage C

a. Tableau entrelacé (nécessite presque tout intérêt pour comprendre)

2. Valeurs et références

Les types de référence incluent : chaîne, tableau, classe

Type de valeur : en plus des types de référence, tels que char, int, short, bool et structure, etc.

1. Chaîne de type de référence spéciale

Chaque affectation et épissage réaffectera de l'espace dans le tas.

3. Fonction

Fondamentalement similaire au langage C

1. Fonctions avec paramètres et plusieurs valeurs de retour

static int[] Calc(int a,int b)
{
    int sum = a + b;
    int avg = sum / 2;
    int[] arr = {sum, avg};
    return arr;
    //return new int[] {sum, avg}; //也可直接在return中新建数组返回
}

4. réf et sortie

1.ref est un modificateur des paramètres de fonction

static void ChangeValue(ref int value)
{
    value = 3;
}

//调用函数时
int a = 2;
ChangeValue(ref a);

2.out est également un modificateur de paramètre de fonction

Utiliser exactement la même chose que la réf.

// 如果不加out或ref 函数内的赋值便无法影响到外部
static void ChangeValue(out int[] arr)
{
    arr = new int[] {1,2,3};
}

int[] arr1 = {10,20,30};
ChangeValue(out arr1);

Mais il existe également des différences entre ref et out, à savoir :

  • La variable transmise par ref doit être initialisée et elle n'est pas utilisée par out.
  • La variable transmise par out doit être affectée en interne, ref n'est pas utilisée
int a;
ChangeValueRef(ref a);//会报错!必须初始化
ChangeValueOut(out a);//不会报错

5. Paramètres de longueur variable et valeurs par défaut des paramètres

1. Mot-clé de paramètre de longueur variable 

params int[] signifie que n paramètres int peuvent être transmis. n peut être égal à 0. Les paramètres transmis seront stockés dans le tableau arr.

Avis:

  • Le mot-clé params doit être suivi d'un tableau
  • Le type du tableau peut être n'importe quel type
  • Les paramètres de fonction peuvent avoir d'autres paramètres et paramètres modifiés par params
  • Au plus un paramètre peut apparaître dans un paramètre de fonction et ce doit être le dernier paramètre.
//求n个整数和的函数
static int Sum(params int[] arr)
{
    //利用for循环求数组内的数字和即可
}

//调用时
Sum(1,2,3,4,5,6);//可以传任意多个参数

2. Valeurs par défaut des paramètres

Les paramètres avec des valeurs par défaut sont généralement appelés paramètres facultatifs.

Lors de l’appel d’une fonction, aucun paramètre ne peut être transmis. Sinon, la valeur par défaut sera utilisée.

Si l'on souhaite les mélanger, les paramètres optionnels doivent être écrits après les paramètres ordinaires.

static void Speak(string str = "还没有话语")
{
    console.WriteLine(str);
}

//调用时可以不传入参数
Speak();

6. Surcharge de fonctions

Exiger:

  • Le même bloc d'instructions (classe ou structure)
  • Les noms de fonctions sont les mêmes
  • Le nombre de paramètres est différent
  • Même nombre de paramètres mais types ou ordre différents
static int CalSum(int a,int b)
{

}

//这两个函数也不不能同时出现,即使其中一个用的是可选参数
static int CalSum(int a , int b = 1)
{

}

7. Structure

Les structures sont généralement écrites dans des blocs d'instructions d'espace de noms

Le mot clé est struct

struct 自定义结构体名
{ 
    //变量

    //构造函数(可选)

    //函数
}

Écrire un exemple de structure étudiante

struct Student
{
    string name;
    int age;
    bool sex;
    int id;

    // 注意结构体中的方法 目前不需要加static
    void Speak()
    {
        //可以使用前面声明的变量
    }

}

1. Modificateurs d'accès

Les variables et méthodes de la structure modifiée peuvent-elles être utilisées en externe ?

public signifie public et privé signifie privé (la valeur par défaut est privée)

2. Constructeur de structures

  • pas de valeur de retour
  • Le nom de la fonction est le même que le nom de la structure
  • Il doit y avoir des paramètres
  • Après avoir déclaré un constructeur, toutes les données variables doivent y être initialisées.
//student结构体内要写的构造函数
public student(int age, bool sex, int number, string name)
{
    this.age=age;
    this.sex=sex;
    this.number=number;
    this.name=name;
}

Je suppose que tu aimes

Origine blog.csdn.net/danielxinhj/article/details/130485361
conseillé
Classement