C#中什么类型实例化要用new,什么不用(例如 int类型)?
如题,查到一些解释说值类型一般不用new来实例化,而引用类型需要用new来实例化,但是有一个程序,代码如下图:这里面string用了new,但是字符串数组chs也属于引用...
如题,查到一些解释说值类型一般不用new来实例化,而引用类型需要用new来实例化,但是有一个程序,代码如下图:
这里面string用了new,但是字符串数组chs也属于引用类型,为什么不用new? 展开
这里面string用了new,但是字符串数组chs也属于引用类型,为什么不用new? 展开
4个回答
展开全部
将类实例化后,才可用用 实例名.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("章子怡");因为这个方法是静态的,可以直接用类名点出来,不用实例化它后用它的一个实例去点。
点出该类里的非静态成员
对于静态成员,不用实例化就能用,用法是
类名.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("章子怡");因为这个方法是静态的,可以直接用类名点出来,不用实例化它后用它的一个实例去点。
展开全部
你是调用 ToCharArray这个函数,它里面自己new char【】数组了的。用反编译工具可以看到ToCharArray的详细定义。
值类型你也可以用new的,只不过浪费内存。
值类型你也可以用new的,只不过浪费内存。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
s.ToCharArray();的返回值就是一个字符数组,即chs被声明后赋予了这个实例对象。所以不需要NEW一个新的实例。
至于string后面的new,那是STRING类的重构方法,你可以去查看string的基类,他的一个重构需要接受一个字符数组,然后拼接该数组返回一个sting对象赋给你的变量S
至于string后面的new,那是STRING类的重构方法,你可以去查看string的基类,他的一个重构需要接受一个字符数组,然后拼接该数组返回一个sting对象赋给你的变量S
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样说的通吧
char[] a=new char[s.Length];
char[] chs=a;
char[] a=new char[s.Length];
char[] chs=a;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询