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

比如这种情况的,
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应该怎么引用啊,我试过实例对象的参数也不行呢。。。

你只是在 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     
   }
}

追问

是这样的,我的想法是只是定义一个B类型,然后想实例化一个B,然后调用方法E,
大概就是用的时候
mb = new B();
mb.E(mf);
我想这么用的。。。那应该怎么办啊,谢谢啦
ps:
不实例化一个C的话能行不啊~~

追答

可以这样,也许符合你的要求:

public class MyClass 
{    
    public struct MyStruct    
    {                            
        public String D1;                
        public String D2;                
        public String D3;                
        public String D4;     
   }
   public MyStruct GetMyStruct(string message)
   {
         MyStrcut s = new MyStruct();
         s.D1 = message;
         return s;  
   }
}        
class Program
 {
        static void Main()
        {
            MyClass mb = new MyClass();
            MyClass.MyStruct ms = mb.GetMyStruct("this is a string");
            Console.WriteLine(ms.D1);
        }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-30
实例化啊、C g =new C() ; g.D1=F;
相似回答