永发信息网

C# 出现非静态的字段方法属性要求对象引用

答案:2  悬赏:40  手机版
解决时间 2021-02-27 15:46
  • 提问者网友:書生途
  • 2021-02-27 02:10
比如这种情况的,
namespace A
{
public class B
{
public struct C
{
public String D1;
public String D2;
public String D3;
public String D4;
}
private void E(String F)
{
C.D1 = F
}
}
}
这个C.D1应该怎么引用啊,我试过实例对象的参数也不行呢。。。
最佳答案
  • 五星知识达人网友:西岸风
  • 2021-02-27 03:30
你只是在 class B 中嵌套声明了 struct C!并没有定义 struct C类型的变量!
public class B
 {
    public struct C
    {            
                public String D1;
                public String D2;
                public String D3;
                public String D4;
     }

    //定义变量
    C mc;   

    private void E(String F)
    {
               mc = new C( );  
                mc.D1 = F
     }
} 更完备的版本如下:
p
public class B 
{    
    public struct C    
    {                            
        public String D1;                
        public String D2;                
        public String D3;                
        public String D4;     
   }        
   //定义变量    
   private C mc;              

   //构造函数 
   public B()
   {
      this.mc = new C();
   }     

   public  void E(String F)    
   {             
     this.mc.D1 = F     
   }
}
全部回答
  • 1楼网友:污到你湿
  • 2021-02-27 03:48
在使用类(class)的非静态字段、属性和方法前,必须先实例化对象,然后通过实例操作非静态字段、属性和方法。 因为被实例化对象是一个引用类型的变量,因此“非静态的字段 方法或属性要求对象引用”。 例如 // 定义一个类testclass class testclass {     // 非静态字段     public int x;     // 非静态属性     public string name{get;set;}     // 非静态方法     public int add(int a, int b)     {         return a + b;     } } // 要使用testclass非静态成员,必须先实例化testclass // 注意:变量 tc 引用类型的 // 如果不实例化testclass,调用非静态成员时就会出错! testclass tc = new testclass(); tc.x = 100; tc.name = "li shi"; int r = tc.add(10, 10);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯