如何为变量定义修正值?

时间:2014-02-12 09:30:52

标签: c#

我的问题标题与我的问题完全不同。我很抱歉,因为我不知道这个问题的标题是什么。

假设我有一个班级让我们说“ClassA”

Class ClassA
{

   int x=5;
   int y=6;
   int z=7;
   static public int sum(int a,int b)
   {
      return (a+b);
   }

}

现在我需要一些逻辑,我可以使用sum(),如下面的另一个类

int c = ClassA.sum(x,y);
int d = ClassA.sum(x,z);

这里我不需要声明“x”,“y”和“z”变量。它必须考虑在ClassA中定义的值。

我的问题可能很愚蠢,但只是帮助我。

我该怎么办????

3 个答案:

答案 0 :(得分:0)

您可以将x,y和z声明为const

class ClassA
{

   public const int x=5;
   public const int y=6;
   public const int z=7;
   static public int sum(int a,int b)
   {
      return (a+b);
   }
}

然后做:

int c = ClassA.sum(ClassA.x,ClassA.y);

答案 1 :(得分:0)

您可以将对象的实例传递给静态方法,它可以调用该对象上的实例成员。

class ClassA
{

   int x=5;
   int y=6;
   int z=7;
   static public int sum(ClassA obj)
   {
      return (obj.x+ obj.y);
   }
}

在其他类中创建类ClassA的实例,并将此对象传递给静态方法

ClassA objA = new ClassA();
int c = ClassA.sum(objA);

答案 2 :(得分:0)

检查以下代码是否符合您的要求。

创建枚举为:

public enum MyEnum
{
    x,y,z
}

classA代码将是:

class ClassA
{
    static int x = 5;
    static int y = 6;
    static int z = 7;

    static public int sum(MyEnum enum1, MyEnum enum2)
    {
        int a = 0;
        int b = 0;

        switch (enum1)
        {
            case MyEnum.x:
                a = x;
                break;
            case MyEnum.y:
                a = y;
                break;
            case MyEnum.z:
                a = z;
                break;
            default:
                break;
        }

        switch (enum2)
        {
            case MyEnum.x:
                b = x;
                break;
            case MyEnum.y:
                b = y;
                break;
            case MyEnum.z:
                b = z;
                break;
            default:
                break;
        }

        return (a + b);
    }
}

我已将x,y,z设置为静态,因为您的方法是静态的,并且您无法在静态方法中访问实例成员。或者,您可以在声明变量x,y,z的同时将static替换为const

希望这有帮助。