+ -
当前位置:首页 → 问答吧 → c# 定义函数

c# 定义函数

时间:2011-12-14

来源:互联网

我看定义函数有最多的定义式这样的
static void fun(){
.......
}



static 
我听同事说是表示静态的意思 说是刚开始分配内存

这个地方只能是static吗 
求普及............

作者: liaoliaoss   发布时间: 2011-12-14

静态也是修饰函数类型,静态函数只属于类本身,相对的动态函数属于每个实例,这些东西你去搜下资料

作者: ssp2009   发布时间: 2011-12-14

static修饰方法的时候意思不是“刚开始分配内存”,而是指不传入this引用,不论是否是static方法,方法的内存都是刚开始就分配了,这个没有区别,区别只是在普通方法内部可以用this引用,而static方法不能用this,

不能用this有一个后果,就是类的非static变量在static方法中都不能访问,

作者: stonespace   发布时间: 2011-12-14

如果是修饰符的话 啊

我看函数还是可以写成

  public static void test() {
  Console.WriteLine("this is a beiju!");
  }

难道2个修饰符 



但是这样确实会报告错误的
  public void test() {
  Console.WriteLine("this is a beiju!");
  }

作者: liaoliaoss   发布时间: 2011-12-14

C# code

 public class classTest
   {
       public static void A()
       { }
       public void B()
       { }
   }
//Main 中
                classTest ct= new classTest();
                ct.B();//调用非静态的方法.
                classTest.A();//静态方法.


作者: enter89   发布时间: 2011-12-14

一般来说第二个 public void test()不会报错,报错多半是因为你把类声明为static了,

比如我估计你的类是这样的:

static class MyClass
{
  public void test() {
  Console.WriteLine("this is a beiju!");
  }
}

如果类被修饰为static,那么所有方法都必须是static,


引用 3 楼 liaoliaoss 的回复:
如果是修饰符的话 啊

我看函数还是可以写成

public static void test() {
Console.WriteLine("this is a beiju!");
}

难道2个修饰符



但是这样确实会报告错误的
public void test() {
Console.WriteLine("this is a beiju!"……

作者: stonespace   发布时间: 2011-12-14

还真是这样
哈哈
先学得js 
在学c#
好多不习惯啊.......

作者: liaoliaoss   发布时间: 2011-12-14