Visual C# 语言概念   编译器错误 CS0241不允许有默认参数说明符方法参数不能有默认值。如果要获得同样的效果,请使用方法重载。下面的示例生成 CS0241:// CS0241.cs
public class TestClass
{
   public void TestMethod(int i = 9)   // CS0241
   // try the following line instead
   // public void TestMethod(int i)
   {
   }   public static void Main()
   {
      TestClass x = new TestClass();
      x.TestMethod(9);
   }
}

解决方案 »

  1.   

    这就是c#功能比c++差的方面之一。 --------------其实,C#是为了减少错误产生的可以性才这么作的,
    单一继承也是一个缺点,感觉不习惯创建接口。
    -----------------------------------------这句话,没太明白,这和INTERFACE有什么关系呢
      

  2.   

    NO!!you can:void TestFun(int a,int b)
    {
    }void TestFun(int a){
      TestFun(a,default_value_of_b);
    }
      

  3.   

    FileNewExit((呵呵)) ,你的采重载的方法不适合于含有多个默认参数的情况哟,比如:
    void TestFun(int a,int b=1,int c=2,int d=3 ...)
    {
    }
    这种情况如果用重载,恐怕要写很多个重载函数了哟。比如:
    void TestFun(int a)
    {
    }
    void TestFun(int a,int b)
    {
    }
    ......
    因为,对于很多个默认参数,用户可能对其中的某个或某几个默认参数进行修改,采用自己传递的参数,这样的话,写出的重载函数就会很多。好麻烦!
      

  4.   

    这句话,没太明白,这和INTERFACE有什么关系呢
    -----------------------------------------------------虽然在C#里边类只能单一继承,但接口却是可以多重继承的。
      

  5.   

    要想在c#中使用相当于c++多重继承的功能就要使用interface.