public class SampleCass{
public void DoSomething(SampleCass sample){
//Do method implementation
}
}
在上面的代碼示例中,傳遞的方法參數類型與該方法所屬的類相同。 我想知道爲什麼它是提前C#類類型作爲方法參數
public class SampleCass{
public void DoSomething(SampleCass sample){
//Do method implementation
}
}
在上面的代碼示例中,傳遞的方法參數類型與該方法所屬的類相同。 我想知道爲什麼它是提前C#類類型作爲方法參數
做這種方式也有一些細節上
感謝這有沒有可能用途。考慮一個數字類(啞):
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);
}
}
這是因爲該方法使用該類的一個實例,而不是它自己的做某事。 想象一下,您有一個聯繫人類型和一種將其與另一個聯繫人進行比較的方法。你可以這樣:
public class Contact
{
public string name;
public bool Compare(Contact c)
{
return this.name.Equals(c.name);
}
}
(我給一個構造例子,這將有助於你理解非構造方法。)
這可以用來創建拷貝構造函數一樣
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);
仔細閱讀。問題不在於構造函數。 – 2013-05-05 06:19:40
@FranciscoAfonso:我已經寫過了。 – 2013-05-05 07:14:18
如果我猜的話,我會說這是做到了這一點方法,因爲邏輯內部方法使用對象的兩個實例 - 一個方法被調用(這個),一個通過參數(樣本)通過。 如果方法內部的邏輯不使用對象的兩個實例,則可能會出錯。
希望這會有所幫助,更多詳細信息,我們需要看到更多的代碼。
那麼,根據您的問題域可以有很多用途。我可以給你另一個例子,你可以寫出同類型的字段。
如:
public class Node
{
public Node _next;
}
我知道你的問題是很特別的,但我認爲這個例子可以增值到目前的問題。
我們不可能知道這個意圖 - 我們不知道這種方法意味着什麼,或者你在哪裏找到它,或者作者是誰。至少你需要給出更多的上下文。 – 2013-05-05 06:14:24