1.类外部调用类内的静态变量和静态成员
C#中类内定义的静态变量和静态方法,在类外访问是用类名.变量 或者 类名.方法
csharp
public class MyClass
{
public static int MyStaticVariable = 10;
public static void MyStaticMethod()
{
Console.WriteLine("This is a static method.");
}
}
csharp
int value = MyClass.MyStaticVariable;
Console.WriteLine(value); // 输出:10
MyClass.MyStaticMethod(); // 输出:This is a static method.
2.类中get和set
cpp中似乎没有这种操作,更多的是用构造函数。
csharp
public class MyClass
{
private int myField;
public int MyProperty
{
get
{
return myField; // 返回字段的值
}
set
{
myField = value; // 设置字段的值
}
}
}
csharp
MyClass obj = new MyClass();
obj.MyProperty = 10; // 设置属性的值
int value = obj.MyProperty; // 获取属性的值
Console.WriteLine(value); // 输出:10
3.C#中类和结构体(后面再想想!有点意思)
结构体是值类型,类是引用类型。所以,结构体是针对栈区内存分配,类是针对堆区内存分配。
栈区内存,在函数结束时进行回收;堆区内存,在整个C#程序结束时进行回收。
class类实例化对象,在堆区开辟存放数据,在栈区保存的是地址。
4.在C#中abstract和partial
两个用于修饰类的关键字
abstract表明该类是抽象类,不能被实例化,主要作用是被子类继承,其中包含虚函数(纯虚函数),子类函数必须 重写实现具体功能。
partial用于指定一个类、结构体、接口或方法可以分部定义在多个文件中。这对于大型代码文件或多人协作开发非常有用,可以将类或方法的不同部分分割到不同的文件中进行编辑。
5.C#中字符串格式化
类似Python。
方法一:$字符和插值
csharp
string name = "Alice";
int age = 25;
string message = $"My name is {name} and I'm {age} years old.";
方法二:占位符
csharp
string name = "Bob";
int score = 85;
string message = string.Format("Player: {0}, Score: {1}", name, score);
6.C#中捕获异常
csharp
static void Main(string[] args)
{
Console.WriteLine("请输入你的年龄:");
string age = Console.ReadLine();
int Myage = 0;
try
{
Myage = int.Parse(age) + 10;
}
catch
{
Console.WriteLine("请输入正确的数字");
return;
}
Console.WriteLine(Myage);
Console.ReadKey();
}
防止用户输入的是字符。如果输入非int类型无法被转换,那么catch将捕获异常进行处理,打印出一句话并且return提前返回。
只有一个return是因为void类型的main函数。
try中如果没有问题,将执行try中的知道完成。try可以理解为一个检测机制,有错误直接进入catch。