C#屏蔽基类成员

可以用与积累成员名称相同的成员来屏蔽

要让编译器知道你在故意屏蔽继承的成员,可以用new修饰符。否则程序可以成功编译,但是编译器会警告你隐藏了一个继承的成员

cs 复制代码
using System;

class someClass
{
    public string F1 = "Someclass F1";
    public void M1(string f)
    {
        Console.WriteLine($"someclass M1:{f}");
    }
}
class otherClass:someClass
{
    public string F1 = "otherClass F1";
    public void M1(string f)
    {
        Console.WriteLine($"otherClass M1:{f}");
    }
}
public class Program
{
    public static void Main(string[] args)
    {
        otherClass o = new otherClass();
        o.M1(o.F1);
    }
}

使用new:

cs 复制代码
using System;

class someClass
{
    public string F1 = "Someclass F1";
    public void M1(string f)
    {
        Console.WriteLine($"someclass M1:{f}");
    }
}
class otherClass:someClass
{
    new public string F1 = "otherClass F1";
    new public void M1(string f)
    {
        Console.WriteLine($"otherClass M1:{f}");
    }
}
public class Program
{
    public static void Main(string[] args)
    {
        otherClass o = new otherClass();
        o.M1(o.F1);
    }
}

结果:

cs 复制代码
otherClass M1:otherClass F1
相关推荐
小鸡吃米…19 小时前
Python - JSON
开发语言·python·json
JAVA+C语言19 小时前
C#——接口
开发语言·c#
黎雁·泠崖19 小时前
吃透指针通用用法:回调函数与 qsort 的使用和模拟
c语言·开发语言
whn197719 小时前
达梦数据库的整体负载变化查看
java·开发语言·数据库
脏脏a19 小时前
聊聊 C 里的进制转换、移位操作与算术转换
c语言·开发语言·移位操作符
陳103020 小时前
C++:string(4)
开发语言·c++
ZHang......20 小时前
synchronized(三)
开发语言·笔记·juc
许泽宇的技术分享20 小时前
AgentFramework:错误处理策略
开发语言·c#
阿里嘎多学长20 小时前
2025-12-21 GitHub 热点项目精选
开发语言·程序员·github·代码托管
kylezhao201920 小时前
C#23种设计模式-单例模式(Singleton)详解与应用
单例模式·设计模式·c#