C#学习笔记之——重载、递归

一、不可变类型string

string person_1 = "Alina";//注意string是引用类型
string person_2 = person_1;//这时候指向同一个空间
person_2 = "Catty";//这时候person_2新开了一个新的空间,跟person_1不是一个空间了


string本质是一个char类型一维数组

对char类型数组可以做如下操作:

char[] chars = { 'q', 'w', 'e', 'r' };
foreach (char c in chars) {
    Console.WriteLine (c);
}
chars[0] = 'a';
foreach (char c in chars) {
    Console.WriteLine (c);
}

对string可以做如下操作:

string string_1 = "qwer";
for (int i = 0; i < string_1.Length; i++) {
    Console.WriteLine (string_1 [i]);
}

string是类,Length就是它的属性

但是不能作如下操作:

<span style="color:#ff6666">string_1[0] = 'a';</span>

因为这里的每个字符是只读的!


StringBuilder

需要System.Text

声明:

StringBuilder my = new StringBuilder("Hello World!");

二、重载

方法名必须相同,返回值类型没要求,参数列表不一样,可以参数类型不一样或者参数个数不一样

        long AddValues(int a, int b) { return a + b; }
        long AddValues(int a, int b, int c) { return a + b + c; }
        long AddValues(float a, float b) { return (long)(a + b); }
        long AddValues(long a, long b) { return a + b; }

构造方法可以有多个重载

不带参数的构造方法称为默认构造

原文地址:https://www.cnblogs.com/AlinaL/p/12852186.html