C#的几个小问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 21:24:11
1。
以前是学C语言的,程序的执行一直认为是从上往下,从Main函数开始直到main函数结尾,未定义的变量不能赋值使用。变量的定义不能放在程序后面,看了C#的书,感觉有点不太对劲,不知道是怎么规定?
2。
public private等的修饰符可否作用于类
3。
public static bool IsLeapYear(iterator iYear)
{
return iYear%4==0&&(iYear%100!=0||iYear%400==0)
}
我在书上看到一段话:
即便IsLeapYear是一个实例方法,Date构造器也仍能使用它,但结果就不一样了:当Date构造器调用IsLeapYear方法时,构造器还没来得及对iYear字段做出明确的设置--iYear字段的值将等于C#从堆里为Date对方分配内存时给堆内存设置的值,也就是0
静态方法IsLeapYear和实例方法IsLeapYear有什么区别吗?,这是《C#程序设计》书的第211页。。恩。。最好能帮我看看书,上面方法是一个程序中的一部分,我只打出了这个方法
4。

…………

static void ChangeStructure(PointStruct ps)
{
ps.x=ps.y=33;
}
struct PointStruct
{
public int x,y;
}
刚开始给ps.x和ps.y分别复制22,为什么执行static void ChangeStructure(PointStruct ps)语句后ps.x和ps.y的数值还是22???
结构传递的不也是指针吗??

1,C#是完全面向对象的,所以Main()方法也必须封装在一个类里,这个Main()方法中的函数会成为整个程序的执行入口。Main()方法必须是一个静态方法,以便能够在不实例化该类的情况下调用Main()方法。一般一个完整的程序中只应该有一个以Main()命名的方法,但如果你需要定义多个同名的方法,你需要制定哪个是入口。最后,区分大小写,main()和Main()是不一样的。

2,可以,但私有类一般没什么用处,默认的是公开。

3,没有那本书。实例方法(非静态方法)是指拥有该方法的类比较实例化之后才可以调用,而静态方法则可以不实例化直接由类命调用。比如你有一个类A,如果有非静态方法B,你必须先为A实例化一个对象a,然后用a.B()调用。但如果这个B是静态方法,则这样调用A.B(),不需要实例化。

4,结构是分配到栈上的,而不是像类那样分配到堆上,因此传递的并不是一个引用而是一个拷贝。指针在C#中其实就是引用,只是这个指针由运行时维护,你不可见。

第一问题:其实C#中也是重main方法中执行的
知识给隐藏了!默认的象双击下一拖放的一个控件进入单击事件就会默认写在这个类的main里c#里语法跟c没差多少!
第二个问题:public private可作用类 还有static final也可以
第三个问题:静态方法是通过类名。就可直接调用的!而实例方法是通过声明类的对象后,通过类调用的!
第四个问题:没看东你说意思!但有一点 C#已经取消了指针着一说法和用法!但当对于特别string类型传直的时候,面上说不是指针,但实际内部还是靠指针形式实现的