首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#中的类层次结构

C#中的类层次结构
EN

Stack Overflow用户
提问于 2009-12-31 21:35:28
回答 3查看 2.4K关注 0票数 0

我有一组类:

节点(超类)

|- NodeType1 (类)

|-NodeType2 (Class)

type1和type2有一些共同的字段(例如: NAME)。如果我在超类(Node)中声明了NAME字段,我应该如何访问types类中的那些变量?我怎么才能让这些属性呢?谢谢您抽时间见我

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-31 21:38:43

如果name字段的access modifierpublicprotected,您将能够在派生类中访问它。修饰符public将使其对所有其他类可见,而protected将限制派生类的可见性。

在任何一种情况下,您都可以像访问在当前类中声明的字段一样访问它:

代码语言:javascript
复制
this._name = "New Name";

如果你想让它成为一个属性,那么相应地设置它的访问修饰符:

代码语言:javascript
复制
public class Node
{
     protected string Name { get; set; }
}
票数 2
EN

Stack Overflow用户

发布于 2009-12-31 21:37:57

代码语言:javascript
复制
class Node
{
    public string Name { get; set; }
}

class NodeType1 : Node
{
    void SomeMethod()
    {
        string nm = base.Name;
    }
}

class NodeType2 : NodeType1
{
    void AnotherMethod()
    {
        string nm = base.Name;
    }
}
票数 3
EN

Stack Overflow用户

发布于 2009-12-31 21:38:28

您可以按照通常访问字段的方式访问此字段,例如,输入this.fieldName。不要忘记将此字段标记为在继承者中可见的protected,或者标记为在继承者和类外部都可见的public

代码语言:javascript
复制
class Node
{
    protected string protectedName;
}

class NodeType1 : Node
{
    public string Name
    {
        get
        {
            return protectedName;
        }
    }
}

class NodeType2 : NodeType1
{
    protected void Foo()
    {
        string bar = Name;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1985432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档