簡體   English   中英

如何在 C# 中使用子 class 屬性

[英]How to use sub class attribute in C#

程序

using System;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            B x = new B();
            x.show();
        }
    }

    public class A     //base class
    {
        protected int no = 1;

        public void show()
        {
            Console.WriteLine(no);
        }
    }
    public class B : A  //sub class
    {
        protected int no = 100;
    }
}

Output 1

如何使用子 Class 屬性值而不是基本 class 屬性值?

我嘗試了覆蓋,新關鍵字,但它似乎不起作用。

我對這個問題的了解是:子 class 擁有父 class 屬性和它自己的屬性。

但是子 class 屬性被基本 class 屬性隱藏,如果是有意的,您可以使用新關鍵字。

謝謝

如何在 C# 中使用子 class 屬性

protected int no = 1;

這不是屬性,而是字段。

您可以在子類(小提琴)中重新分配該字段的值:

public class B : A  //sub class
{
    public B() 
    {
        no = 100; 
    }
}

或者你可以用一個屬性替換你的字段,它可以是虛擬的,因此被覆蓋(小提琴):

public class A     //base class
{
    protected virtual int no => 1;

    public void show()
    {
        Console.WriteLine(no);
    }
}
public class B : A  //sub class
{
    protected override int no => 100;
}

不要在 class B 中聲明no字段。您可以從構造函數或方法訪問no

通過在 class B 中聲明no ,您將在 class A 中隱藏no 。我建議不要對繼承類中的字段使用相同的名稱。 通過使用受保護,您可以訪問兩個類中的no字段。

public class A     //base class
{
    protected int no = 1;

    public void show()
    {
        Console.WriteLine(no);
    }
}
public class B : A  //sub class
{
    public B()
    {
        no = 2;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM