C#中什么类型实例化要用new,什么不用(例如 int类型)?

如题,查到一些解释说值类型一般不用new来实例化,而引用类型需要用new来实例化,但是有一个程序,代码如下图:这里面string用了new,但是字符串数组chs也属于引用... 如题,查到一些解释说值类型一般不用new来实例化,而引用类型需要用new来实例化,但是有一个程序,代码如下图:

这里面string用了new,但是字符串数组chs也属于引用类型,为什么不用new?
展开
 我来答
碧血玉叶花
推荐于2017-10-01 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1714万
展开全部
将类实例化后,才可用用 实例名.xxxx
点出该类里的非静态成员
对于静态成员,不用实例化就能用,用法是
类名.xxxx
比如有个类
class Human
{
int age;
string sex;
string name;
public Human//无参构造函数
{....}
public Human(....参数)//有参构造函数
{....}
public int GetAge(string name)
{....}
public static string GetSex(string name)
{....}
}
要使用Human类里的GetAge方法,要这样
Human myGF = new Human();
myGF.GetAge("章子怡");
而要使用类里的GetSex方法,应该这样
Human.GetSex("章子怡");因为这个方法是静态的,可以直接用类名点出来,不用实例化它后用它的一个实例去点。
内裤最大功能
2015-05-26 · TA获得超过3105个赞
知道大有可为答主
回答量:3202
采纳率:79%
帮助的人:489万
展开全部
你是调用 ToCharArray这个函数,它里面自己new char【】数组了的。用反编译工具可以看到ToCharArray的详细定义。

值类型你也可以用new的,只不过浪费内存。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悉诗晗pu
2015-05-26 · TA获得超过1566个赞
知道小有建树答主
回答量:894
采纳率:0%
帮助的人:751万
展开全部
s.ToCharArray();的返回值就是一个字符数组,即chs被声明后赋予了这个实例对象。所以不需要NEW一个新的实例。
至于string后面的new,那是STRING类的重构方法,你可以去查看string的基类,他的一个重构需要接受一个字符数组,然后拼接该数组返回一个sting对象赋给你的变量S
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hesiyuan1999
2019-02-26 · TA获得超过718个赞
知道小有建树答主
回答量:1457
采纳率:89%
帮助的人:541万
展开全部
这样说的通吧
char[] a=new char[s.Length];
char[] chs=a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式