【C#】与cpp异同总结

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。

相关推荐
xiangpanf几秒前
PHP vs Python:30字看透两大语言差异
开发语言·php
江沉晚呤时5 分钟前
.NET 9 快速上手 RabbitMQ 直连交换机:高效消息传递实战指南
开发语言·分布式·后端·rabbitmq·.net·ruby
yunyun3212318 分钟前
嵌入式C++驱动开发
开发语言·c++·算法
左左右右左右摇晃20 分钟前
Java笔记 —— 值传递与“引用传递”
java·开发语言·笔记
chushiyunen23 分钟前
python语法-继承、方法命名、单例等
开发语言·python
沐知全栈开发31 分钟前
Chart.js 饼图详解
开发语言
iReachers32 分钟前
恒盾C#混淆加密大师 1.4.5 最新2026版本发布 (附CSDN下载地址)
c#·c#混淆·c#加密·wpf加密·winform加密
码云数智-大飞35 分钟前
迈向 99.99%:高可用系统架构的哲学与实战
开发语言
Amnesia0_036 分钟前
类型转换和特殊类
开发语言·c++
always_TT36 分钟前
static关键字初探
java·开发语言