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) }

在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)
}

您只需在方法中调用属性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);
    }