我如何获得不同类的价值

时间:2014-03-29 20:34:04

标签: c#

我有两节课。我如何获得不同类的价值。 例如......

public class bat
{
    public int a; 

    void valueA()
    {
        int a = 20; 
    }
} 

class nah
{
   public int b;

   void valueB()
   {
       b = a; // variable a from class bat. 
   }   
}

4 个答案:

答案 0 :(得分:1)

您可以将bat的实例传递到nah,然后引用a

public class bat
{
    public int a; 

    void valueA()
    {
        int a = 20; 
    }
} 

class nah
{
   public int b;

   void valueB(bat someBat)
   {
       b = someBat.a;
   }   
}

或者将a设为静态变量,这样您就不需要bat的实例来引用它:

public class bat
{
    public static int a; 

    void valueA()
    {
        int a = 20; 
    }
} 

class nah
{
   public int b;

   void valueB(bat someBat)
   {
       b = someBat.a;
   }   
}

关于void valueA()中的 bat 方法......

在第一种情况下,无法从课外调用bat.valueA(),因为它不是public。此外,您还会在20结束时将valueA()分配给超出范围的本地变量。

在第二种情况下,你不能在不使其公开和静态的情况下调用valueA() ......并且你仍然要分配一个局部变量,而不是类级变量。

答案 1 :(得分:0)

类只是用于创建对象的模板。您必须创建这些类的实例,即必须使用new关键字创建对象。

class nah
{
   public int b;

   void valueB()
   {
       bat batObject = new bat();
       batObject.valueA(); // Set the value.
       b = batObject.a; // variable a from class bat. 
   }   
}

在.NET编程中,通常使用PascalCase来表示类名,方法名和属性名。许多程序员使用前缀“_”作为字段名称。字段名称和变量名称用camelCase编写。字段通常保密。将属性用于可公开访问的值。

public class Bat
{
    public int A { get; set; }

    public void SetValueA()
    {
        A = 20;
    }
} 

public class Nah
{
   public int B { get; set; }

   public void SetValueB()
   {
       Bat bat = new Bat();
       bat.SetValueA();
       B = bat.A;
   }
}

答案 2 :(得分:0)

你可以这样做:

public class bat
{
public int a; 

void valueA()
{
    int a = 20; 
}
} 

class nah
{
public int b;

void valueB(bat bt)
{
   b = bt.a; // variable a from class bat. 
}   
}

答案 3 :(得分:-1)

您可以nah继承bat

示例:

public class bat{
    public int a; 
    void valueA(){
    a = 20; }
} 
------ 
class nah : bat {
   public int b;
   void valueB(){
   b = a; // variable a from class bat. 
   }   
}

了解更多here

这意味着这些类都在同一个应用程序中。如果不是,那么您也可以接受bat类型作为valueB的参数

void valueB(bat Bat)
{
    b = Bat.a;
} 

或者通过HTTP请求传递值,阅读它here