1.注释 同C
2.声明变量、初始化变量 基本同C
1)声明: 浮点类型:decimal ,十进制数,更高精度
动态类型:dynamic 运行时程序自动解析类型,如下:
dynamic dynamicValue = 10;
dynamicValue = "Hello World";
2)初始化:
a.值类型初始化 同C
b.引用类型初始化:
1.new关键字分配内存
string text = "Hello, World!";
int[] numbers = new int[] { 1, 2, 3, 4, 5 };
2.对象初始化器
Person person = new Person { Name = "John Doe", Age = 30 };
c.集合初始化
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
d.空初始化
string uninitializedString = null;
e.构造函数初始化
对于自定义的类,可以通过构造函数来初始化对象的成员变量。
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
// 构造函数
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
Person person = new Person("Jane Doe", 25);
ps:Var的用法
有点类似dynamic,同样用于不确定类型变量的声明,是用于类型推断的关键字。区别在于:
1)类型区别:var是一个静态变量,编译器会自动推断变量类型,且一经确定就无法再改变;而dynamic表示的动态变量类型在运行时才被确定,可以随时重新定义类型,可以改变
2)性能:由于var只需要开始检查一次,而dynamic运行时通过反射需要多次检查,所以var的性能更高
3)类型安全:var提供了编译时的类型安全,而dynamic提供了更灵活的类型不安全的环境。
eg:
var num = 5; // 编译器推断 num 为 int 类型
dynamic dynNum = 5; // dynNum 被推断为 dynamic 类型
num = "Not an int"; // 错误:num 已经被推断为 int 类型
dynNum = "Not an int"; // 正确:dynNum 是 dynamic 类型
Console.WriteLine(num); // 输出:5
Console.WriteLine(dynNum); // 输出:Not an int
在这个例子中,尝试将 num
赋值为一个字符串类型会导致编译错误,因为 num
被推断为 int
类型。而 dynNum
由于是 dynamic
类型,可以接受任何类型的值。