我可能有這個錯誤,但我已經看到了創建一個重載的方法,在定義中調用自己的方式。它是這樣的:在C#中使用'this()'調用重載方法的正確語法是什麼?
public void myFunction(int a, int b)
{
//Some code here
}
public void myFunction(int a) : this (a, 10)
{ }
這是不正確的語法,我知道,但我找不到正確的語法由於某種原因。這是什麼正確的語法?
我可能有這個錯誤,但我已經看到了創建一個重載的方法,在定義中調用自己的方式。它是這樣的:在C#中使用'this()'調用重載方法的正確語法是什麼?
public void myFunction(int a, int b)
{
//Some code here
}
public void myFunction(int a) : this (a, 10)
{ }
這是不正確的語法,我知道,但我找不到正確的語法由於某種原因。這是什麼正確的語法?
你感到困惑的構造函數語法方法的語法。要做到這一點的方法,唯一的辦法是顯而易見的:
public void myFunction(int a, int b)
{
//Some code here
}
public void myFunction(int a)
{
myFunction(a, 10) ;
}
雖然爲C#4,你可以使用一個可選參數:
public void myFunction(int a, int b = 10)
{
//Some code here
}
你寫什麼是接近正確的構造:
public class myClass
{
public myClass(int a, int b)
{
//Some code here
}
public myClass(int a) : this (a, 10)
{ }
}
正是我在找的東西。謝謝。 – 2010-08-27 15:23:21
只是這樣做:
public void myFunction(int a, int b)
{
//Some code here
}
public void myFunction(int a)
{
myFunction(a, 10)
}
你混淆與壓倒一切的過載。你可以從這樣的一個派生類中調用基類的構造:
public MyConstructor(int foo)
:base (10)
{}
+1,不知道你能做到這一點。 – 2010-08-27 15:24:15
public class BaseClass {
public virtual void SomeFunction(int a, int b) {}
}
public class Derived : BaseClass {
public override SomeFunction(int a, int b) {
base.SomeFunction(a, b * 10);
}
}
問題是關於重載,而不是重寫。 – Lee 2010-08-27 15:12:42
的'這個()'語法可以僅被用於構造函數。 – 2010-08-27 15:06:09