public class SampleCass{
public void DoSomething(SampleCass sample){
//Do method implementation
}
}
在上面的代码示例中,传递的方法参数类型与方法所属的类相同。 我想知道为什么这样做以及它的一些细节
提前致谢
答案 0 :(得分:2)
这可能有用。例如,考虑一个Number类(哑):
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);
}
}
答案 1 :(得分:2)
那是因为该方法使用该类的实例而不是它自己的实例来做某事。 想象一下,您有一个Contact类型和一个将它与另一个联系人进行比较的方法。你可以这样做:
public class Contact
{
public string name;
public bool Compare(Contact c)
{
return this.name.Equals(c.name);
}
}
答案 2 :(得分:0)
如果我不得不猜测,我会说这是以这种方式完成的,因为方法内部的逻辑使用了对象的两个实例 - 一个方法被调用( this ),一个通过参数(样本)。 如果方法内部的逻辑不使用对象的两个实例,则可能会出错。
希望这会有所帮助,有关详细信息,我们需要查看更多代码。
答案 3 :(得分:0)
嗯,根据您的问题域,可能会有很多用途。我可以给你另一个例子,你可以写出与该类相同类型的字段。
例如:
public class Node
{
public Node _next;
}
我知道你的问题非常特别,但我认为这个例子可以为当前问题增加价值。
答案 4 :(得分:-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);