学c#不久,学着写一个控件,发现自己要用到自己类中定义的一个属性,就在类中new了一个自己,编译是通过了,但就是不知道实际对不对,网上也没找到类似例子,所以来问一下。这个和在其他类中new一下有什么区别?我自己在控制台中试了一下,发现这样是可以的,但是另外一种情况就有语法错误。
public class test
{
public test()
{
}
private int CC
{
get
{ return 5; } }
public static void Main()
{
test m = new test();
int i = m.CC;
Console.WriteLine(i.ToString());
}
这样可以
public class test
{
public test()
{
}
private int CC
{
get
{ return 5; } }
public static void Main()
{
a();
}
private void a()
{
test m = new test();
int i = m.CC;
Console.WriteLine(i.ToString());
}
这样编译就出错了,为什么呢?
public class test
{
public test()
{
}
private int CC
{
get
{ return 5; } }
public static void Main()
{
test m = new test();
int i = m.CC;
Console.WriteLine(i.ToString());
}
这样可以
public class test
{
public test()
{
}
private int CC
{
get
{ return 5; } }
public static void Main()
{
a();
}
private void a()
{
test m = new test();
int i = m.CC;
Console.WriteLine(i.ToString());
}
这样编译就出错了,为什么呢?
解决方案 »
- 地址如何转换成百度地图的点坐标?
- 请教一个c#写XML换行的问题
- 报错,请问什么情况
- 重写系统自带的事件报错
- c#
- 求助:反斜杠(\)在win7的vs08下变成 人民币标志了!
- 一个包含两个整型字段的结构体列表List<twoDimension>对象A,有没有函数能将A直接转换为二维数组B[,]。
- 对象集合 的存取策略(这些对象是同一个类的实例)******急啊 在线等!!!!!!!!!!
- 初学者问题:声明父类的成员函数为virtual(虚方法)与不声明有何区别,因为子类中不用override照样能达到重写的目的。
- 多线程的问题,哪位高手帮解决以下阿 ?
- 主流的.Net框架目前有哪些???
- 不同窗体传值问题!
所以
public static void Main()
{
a();//这个错了
} 类中当然可以new自己,单件模式就是最典型的自己new自己
{
a();
}
不能在Main方法中调用 a(),这是属于类的私有方法
第二个方法当然会出错..
new一个自己是可以的,没有坏结果,只要你不要造成无限递归就行,比如在构造函数里面new同样的构造函数由于main是静态方法,所以它不可以调用非静态的,你可以这样调用a() public static void Main()
{
test t = new test();
t.a();
}
另外建议楼主以后编写代码时 把代码放到try{} catch()块中捕捉异常 你就知道什么错误了...
要实例化后才可以用.
第二段代码:把啊a()方法定义为static就ok了
{
test m = new test();
int i = m.CC;
Console.WriteLine(i.ToString());
}
可是第二个方法中有错!
{
public test()
{
}
test m = new test();
private int CC
{
get
{ return 5; } }
public static void Main()
{
a();
}
private void static a()
{
int i = m.CC;
Console.WriteLine(i.ToString());
}
这样编译通过了,但是有异常,调试通不过,这又与我上面那两个例子又有什么区别?