在C#中,定义类需要使用new,比如:MyClass class01= new MyClass();我想问的是以下对string变量的定义有何区别:
string str="Hello World";
string str=new string("Helllo World");
希望能够给一个比较准确的解释,谢谢大家!
C#中的变量类型定义
答案:5 悬赏:20
解决时间 2021-04-22 16:44
- 提问者网友:醉人眸
- 2021-04-22 02:03
最佳答案
- 二级知识专家网友:强势废物
- 2021-04-22 02:12
前者是在栈中查找或者生成"hello world"字符,然后将string对象名为str的地址指向这个字符串的地址,后者是在堆中s生成一个string对象str,一个"hello world"的string对象,并且将"hello world"的对象的地址传给string类,然后调用构造函数,使str对象也指向"hello world"。不知道我理解的可准确。。。。。。
全部回答
- 1楼网友:不羁的心
- 2021-04-22 04:57
int本来是一个值类型,不可以赋予空值
但这样一个问号,就是使得num成为一个可空类型,你后面这样写也是可以的了:
num = null
这样的作用就是有些时候当某些int值无意义,你又不想用0等特殊值来表示。
- 2楼网友:许你一世温柔
- 2021-04-22 04:28
没什么区别吧!
平时都用string str="Hello World";
这种“string str=new string("Helllo World");”确定可以用?
- 3楼网友:何必打扰
- 2021-04-22 03:04
class People
{
public string Name { get; set; }
public static implicit operator People (String str)
{
People p = new People();
p.Name = str;
return p;
}
}
People p = "Shimizu";
看看这个你就明白了
- 4楼网友:狙击你的心
- 2021-04-22 02:57
对于1你是说a能不能换成别的字母、是这个意思吗 对于2 “有符号”是指包括正数,零和负数;“无符号”是指不包括负数
对于3 引用类型的类可以继承别的类、但是是单一继承、而所有类的最终基类都是object.object里面有很多方法的
声明一个值类型变量,编译器会在栈上分配一个空间,这个空间对应着该值类型变量,空间里存储的就是该变量的值。引用类型的实例分配在堆上,新建一个引用类型实例,得到的变量值对应的是该实例的内存分配地址
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯