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

相关推荐
大吱佬20 分钟前
GO 八股整理(自用)
开发语言·后端·golang
froginwe1127 分钟前
Go 语言结构体
开发语言
松涛和鸣37 分钟前
DAY20 Optimizing VS Code for C/C++ Development on Ubuntu
linux·c语言·开发语言·c++·嵌入式硬件·ubuntu
田里的水稻40 分钟前
Python_编程中代码注释相关格式 PEP8 — Python 官方代码风格指南
开发语言·python
一只乔哇噻42 分钟前
java后端工程师+AI大模型进修ing(研一版‖day57)
java·开发语言·人工智能·算法·语言模型
Williams101 小时前
Java POI/Excel工具:终结OOM、精度丢失和i18n三大难题
java·开发语言·excel
李绍熹1 小时前
Lua 错误处理详解
开发语言·junit·lua
I***26151 小时前
PHP进阶-在Ubuntu上搭建LAMP环境教程
开发语言·ubuntu·php
gc_22991 小时前
学习C#调用AspNetCoreRateLimit包限制客户端访问次数(4:源码分析)
c#·coreratelimit
灯厂码农1 小时前
C++文件操作
开发语言·c++