【C#语言入门】09. 操作符详解(中)

本文详细介绍了C#中的操作符使用,包括new关键字的实例化、构造器与初始化器的区别,checked和unchecked用于处理溢出,以及委托的声明。还探讨了sizeof的用法、不同类型的操作符如地址和引用操作,以及前置/后置自增自减的区别。
摘要由CSDN通过智能技术生成

【C#语言入门】09. 操作符详解(中)

四、各类操作符的示例

  1. new
    主要功能是创建一个类型的实例,并且调用实例构造器。
Form myForm = new Form();
myForm.Text = "Hello!";
myForm.ShowDialog();

附加功能是调用构造器的初始化器。

Form myForm = new Form(){Text = "Hello!", FormBorderStyle.SizableToolWindows};
myForm.ShowDialog();
//初始化器可以初始化多个内容
new Form().ShowDialog();

能用,但是是一次性的,因为没有把实例存到变量中去,过一会儿就会被回收。

int x = 100;
string name = "bu";
int[] myArray = {1, 2, 3, 4}; 
string name = new string();//也行

这些个也是类型,但是创建实例不需要new,这叫做C#的语法糖衣,一些非常基础的类型就帮你省掉了,当然你非要用也是没关系的。

var person = new {Name = "Mr.Okay", Age = 34};

隐式类型创建实例。

  1. checked&unchecked
    功能是,检查一个值在内存中是否有溢出
checked
{
//在语句块内的所有都会被检测是否溢出
}
  1. delegate
    最广泛的作用不是用作操作符,而是声明委托,作为操作符的应用场景已经很少了,被别的方法取代。

  2. sizeof
    获取对象在内存当中所占字节数的尺寸。默认情况下只能获取基本数据类型的尺寸(结构体),在非默认的情况下我们可以用他去获取非基本数据类型,但是要放在非安全的环境中(unsafe)

  3. ->
    是指针操作,指针操作或者内存操作只能对结构体使用,不能对引用类型使用

unsafe
{
    Student stu;
    stu.ID = 1;
    stu.Score = 99;
    Student* pStu = &stu;
    pStu->Score = 100;
    (*pStu).Score = 1000;
    Console.WriteLine(stu.Score);
}

struct Student
{
    public int ID;
    public long Score;
}
  1. &x
    取地址操作符,实例同上。

  2. *x
    取引用操作符,实例同上。

  3. +、-、!、~
    正副非反操作符,正副操作符基本与数学运算符一致,但是由于计算机语言中数据类型的最大值和最小值绝对值并不相同,因此对最大值直接取负很有可能产生溢出,因此我们要用到取反操作(~)。

int x = 100;
int y = -(-x);//不能--x

int x = 12345678;
int y =~x;//结果为-12345679

bool b1 = true;
bool b2 = !b1;//结果为false

if(!string.IsNullOrEmpty(intName))
{
    this.Name = intName;
}
else
{
    throw new ArgumentException("intName cannot be null or empty.");
}
  1. ++x 、 --x
    前置自增自减,先增减后赋值。

  2. x++ 、 x–
    后置自增自减,先赋值后增减。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值