C# 从同一类读取属性
在C#中,如果我在课堂上有这个:C# 从同一类读取属性,c#,C#,在C#中,如果我在课堂上有这个: public int SomeNumber { get { return 6; } } 如果函数接收到同名变量,我如何从同一类中的函数中读取(获取)该数字?例如: public bool SomeFunction(int SomeNumber) { check if SomeNumber (the one passed to this function) == SomeNumber (the one from the public int) }
public int SomeNumber
{
get { return 6; }
}
如果函数接收到同名变量,我如何从同一类中的函数中读取(获取)该数字?例如:
public bool SomeFunction(int SomeNumber)
{
check if SomeNumber (the one passed to this function) == SomeNumber (the one from the public int)
}
您只需在方法中调用属性get:
public void MyMethod()
{
var someNum = SomeNumber; // basically, var somNum = this.SomeNumber;
}
编辑:要通过OP的编辑进行澄清:
public void MyMethod(int someNumber)
// Change the naming of your parameter so it doesnt clash with the property
{
if(someNumber == SomeNumber)
// Do Stuff
}
与字段相同:
public void SomeOtherFunction()
{
var x = SomeNumber;
}
尽管其他建议很有效(并且遵循易于阅读/维护的代码),但它们并不能直接回答您的问题。上课
public class SomeClass
{
public int SomeNumber { get { return 6; } }
...
和一个传入参数的函数
public void SomeMethod(int SomeNumber)
{
// Your code here...
您可以访问传入的参数和属性,如下所示:
if (SomeNumber > this.SomeNumber)
{
// Your results here
区别在于,如果只引用变量名,它将使用同一范围内的变量,即传入的变量。如果指定使用“this”,则始终会获得类成员
注意:这不适用于静态类,因为该类没有实例。(不能使用“this.whatever”)你会被卡住。有许多编码标准,其中一些标准规定,最好使用“myVariable”形式表示方法参数,“myVariable”形式表示属性名称,“myVariable”形式表示属性备份存储,以便在代码中轻松区分它们。请运行此代码,您会得到它。。使用此运算符可引用类级别变量
public void CheckNumber(int SomeNumber)
{
Console.WriteLine(SomeNumber);
Console.WriteLine(this.SomeNumber);
}
如果函数不是静态的:)@Samich-因此MyMethod是一个公共void而不是一个静态公共void。我是否需要一些特殊的东西来访问“this”?如果函数是静态的-您不能在不创建类实例的情况下访问此属性,否则可以从任何地方访问此属性,甚至可以从具有current one实例的不同类访问。谢谢。我用更多信息编辑了这个问题。看一看?谢谢。这就是我现在正在做的。不幸的是,我不能重命名任何东西,因为这些都是我正在实现的来自第三方的接口方法和属性。
public void CheckNumber(int SomeNumber)
{
Console.WriteLine(SomeNumber);
Console.WriteLine(this.SomeNumber);
}