gpt4 book ai didi

c# - 如何从类的实例访问嵌套类?

转载 作者:太空狗 更新时间:2023-10-29 23:05:31 24 4
gpt4 key购买 nike

partial class Employee
{
protected string empName;

protected int empID = new int();

protected float currPay;

protected static int empAge;

protected string empSNN;

// these are nested classes

public class BenefitPackage
{
// I want to access this class

public enum BenefitPackageLevel
{
standard,Gold,Platinum
}
public double ComputePayDeduction()
{
return 125.0;
}
}

我正在尝试通过 employees 类的实例访问 BenefitPackageLevel 类:

Employee emp= new Employee() 
var benefitpackage= emp.BenefitPackage.BenefitPackageLevel.standard;

但为什么我没有将 BenefitPackage 定义为静态成员,我只能通过类级别访问它,例如:

Employee.BenefitPackage.BenefitPackageLevel.standard

有没有可能嵌套类默认是静态的?

最佳答案

您没有将其作为静态成员访问。您正在通过其外部类型访问 standard。当您声明一个嵌套类型时,它的范围仅限于外部类型,因此您必须通过其外部类型访问它。

例如,如果你想创建一个 BenefitPackage 的实例,你应该这样做:

var benefitPackage = new Employee.BenefitPackage();

所以当你想访问 standard 作为 BenefitPackageLevel 枚举的值时,你必须像这样使用它:

var temp = Employee.BenefitPackage.BenefitPackageLevel.standard;

除非您公开嵌套类型,否则外部类型无法访问它们。

请记住,当您创建外部类型的实例时,它不会创建其内部类型的实例。

关于c# - 如何从类的实例访问嵌套类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42875765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com