2013-05-05 129 views
0
public class SampleCass{ 
    public void DoSomething(SampleCass sample){ 

     //Do method implementation 
} 
} 

在上面的代碼示例中,傳遞的方法參數類型與該方法所屬的類相同。 我想知道爲什麼它是提前C#類類型作爲方法參數

+3

我們不可能知道這個意圖 - 我們不知道這種方法意味着什麼,或者你在哪裏找到它,或者作者是誰。至少你需要給出更多的上下文。 – 2013-05-05 06:14:24

回答

2

做這種方式也有一些細節上

感謝這有沒有可能用途。考慮一個數字類(啞):

public class Number { 
    private readonly int _n = 0; 

    public Number(int n) { _n = n; } 

    public Number Add(Number other) { 
     return new Number(this._n + other._n); 
    } 
} 
2

這是因爲該方法使用該類的一個實例,而不是它自己的做某事。 想象一下,您有一個聯繫人類型和一種將其與另一個聯繫人進行比較的方法。你可以這樣:

public class Contact 
{   
    public string name; 

    public bool Compare(Contact c) 
    { 
     return this.name.Equals(c.name); 
    } 
} 
-1

(我給一個構造例子,這將有助於你理解非構造方法。)

這可以用來創建拷貝構造函數一樣

public class SampleCass 
{ 
    public int MyInteger { get; set;} 

    //Similarly other properties 

    public SampleClass(SampleClass tocopyfrom) 
    { 
      MyInteger = tocopyfropm.MyInteger; 
      //Similarly populate other properties 
    } 
} 

可以可以這樣調用

SampleClass copyofsc = new SampleClass(originalsc); 
+0

仔細閱讀。問題不在於構造函數。 – 2013-05-05 06:19:40

+0

@FranciscoAfonso:我已經寫過了。 – 2013-05-05 07:14:18

0

如果我猜的話,我會說這是做到了這一點方法,因爲邏輯內部方法使用對象的兩個實例 - 一個方法被調用(這個),一個通過參數(樣本)通過。 如果方法內部的邏輯不使用對象的兩個實例,則可能會出錯。

希望這會有所幫助,更多詳細信息,我們需要看到更多的代碼。

0

那麼,根據您的問題域可以有很多用途。我可以給你另一個例子,你可以寫出同類型的字段。

如:

public class Node 
{ 
    public Node _next; 
} 

我知道你的問題是很特別的,但我認爲這個例子可以增值到目前的問題。

相關問題