C#如何访问内部类成员的问题


 class StatusPC
 {
     class CPU
     {
         public string Usage { get; set; }
         public string Tempe { get; set; }
         public string Sd { get; set; }
     }
     class RAM
     {
         public string CUsage { get; set; }
         public string MaxMem { get; set; }
         public string AvaiMem { get; set; }
         public string Res { get; set; }
     }
}

我在C#定义类, 定义了StatusPC k_PC = new StatusPC();
想通过 k_PC.类名.成员  来访问内部类成员Usage,Tempe ,AvaiMem ,但失败了,是哪出问题?

这样定义来使用,才最好吧。

   class CPU
     {
         public string Usage { get; set; }
         public string Tempe { get; set; }
         public string Sd { get; set; }
     }
     class RAM
     {
         public string CUsage { get; set; }
         public string MaxMem { get; set; }
         public string AvaiMem { get; set; }
         public string Res { get; set; }
     }
       class StatusPC
       {
           public CPU cpu { get; set; }
           public RAM ram { get; set; }
       }

```

当然不行咯,要么写成

StatusPC.CPU k_PC = new StatusPC.CPU();

要么写成

class StatusPC
 {
         public string Usage { get; set; }
         public string Tempe { get; set; }
         public string Sd { get; set; }
         public string CUsage { get; set; }
         public string MaxMem { get; set; }
         public string AvaiMem { get; set; }
         public string Res { get; set; }
}
 class StatusPC
 {
     class CPU
     {
         public string Usage { get; set; }
         public string Tempe { get; set; }
         public string Sd { get; set; }
     }
     class RAM
     {
         public string CUsage { get; set; }
         public string MaxMem { get; set; }
         public string AvaiMem { get; set; }
         public string Res { get; set; }
     }
     public StatusPC.CPU cpu {get;set;}
     public StatusPC.RAM ram {get;set;}
     public StatusPC()
     {
         cpu = new StatusPC.CPU(); ram = new StatusPC.RAM();
     }
}

【以下回答由 GPT 生成】

问题的关键在于访问内部类成员变量时的语法错误。在C#中,访问内部类成员变量的语法是通过外部类实例来访问内部类的。下面是正确的访问方式:

// 定义StatusPC类
public class StatusPC
{
    // 定义内部类CPU
    public class CPU
    {
        public int Usage { get; set; }
        public int Tempe { get; set; }
    }

    // 定义内部类RAM
    public class RAM
    {
        public int AvaiMem { get; set; }
    }
}

// 创建StatusPC实例
var k_PC = new StatusPC();

// 访问内部类CPU的成员变量
k_PC.CPU cpu = new k_PC.CPU();
cpu.Usage = 50;
cpu.Tempe = 70;

// 访问内部类RAM的成员变量
k_PC.RAM ram = new k_PC.RAM();
ram.AvaiMem = 1024;

在上面的代码中,我们通过创建StatusPC实例k_PC来访问内部类CPU和RAM的成员变量。首先,我们创建了内部类CPU的实例cpu,并通过k_PC.CPU的方式来访问CPU的成员变量Usage和Tempe。然后,我们创建了内部类RAM的实例ram,并通过k_PC.RAM的方式来访问RAM的成员变量AvaiMem。

希望以上解决方案对您有所帮助,如果您有任何问题,请随时向我提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^