【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。

相关推荐
阿松爱学习13 分钟前
【Unity开发】FileStream 详解及用法指南
unity·c#·unity开发
不灭的黄金瞳12315 分钟前
Java数据类型与变量
java·开发语言·intellij-idea
小白学大数据34 分钟前
Python 项目实战:用 Flask 构建生产级 MySQL 增删改查 REST API
开发语言·人工智能·python·mysql·flask
Nil2081 小时前
leetcode 20有效的括号
开发语言
jaysee-sjc1 小时前
【苍穹外卖】Day01:从零认识企业级项目开发
java·开发语言·数据库·mysql·spring·intellij-idea·mybatis
ThornArmor1 小时前
《向内深潜,向外飞掠》
c语言·开发语言·c++·vim·visual studio
传奇开心果编程1 小时前
【仓颉语言基础语法学与练】第1课:从零开始
开发语言·学习·华为
君顾11 小时前
本地AI错题纠正小程序:端侧推理与错题闭环实战
java·开发语言·错题
吠品1 小时前
Python 写入 Excel 的两种主流方案实际用法总结
c语言·开发语言·算法
邪修king1 小时前
Re:Linux 系统篇(三十一):库的制作与原理Chapter2:静态链接与程序加载 —— 从磁盘 ELF 到运行中进程的完整旅程
android·linux·运维·开发语言