.NET 嵌套类

2023-12-09

我正在开发的当前类库将有一个基类(Field),其中包含超过 50 个特定的“字段”类型,这些类型将从“Field”继承并嵌套以保持可读性。例如...

abstract class Field
{
    public int Length { get; set; }

    public class FieldA : Field
    {
        public static void DoSomething()
        {
            Console.WriteLine("Did something.");
        }
    }
}

到目前为止,一切看起来都很好,我可以使用如下所示的代码:

class Program
{
    static void Main(string[] args)
    {
        Field.FieldA.DoSomething();
    }
}

然而,为什么这也有效呢?这里发生了什么让编译器/IDE 智能感知继续链接这些“FieldA”?

class Program
{
    static void Main(string[] args)
    {
        Field.FieldA.FieldA.FieldA.FieldA.FieldA.FieldA.FieldA.DoSomething();
    }
}

无论如何,这并不是应用程序的破坏,但我认为它很奇怪。在 Boo 中做同样的事情(这是库所使用的实际语言)。


听起来你想要类似的东西:

abstract class Field
{
    public int Length { get; set; }
}

public class FieldA : Field
{
    public static void DoSomething()
    {
        Console.WriteLine("Did something.");
    }
}

否则,您将定义一个带有内部类的基类,继承者也将获得该内部类。因此,当您从外部类继承来创建内部类时,您就开始了一个循环。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 嵌套类 的相关文章

  • 使用inotify监控文件

    我正在使用 inotify 来监视本地文件 例如使用 root temp inotify add watch fd root temp mask 删除该文件后 程序将被阻止read fd buf bufSize 功能 即使我创建一个新的 r
  • .NET 进程分配的内存何时释放回 Windows

    设置 NET 在启动时以及在收集后尝试满足分配请求时 分段为每一代的堆 0 1 2 LOH 分配内存 以获得连续的内存块 为每个堆分配的内存可能会随着应用程序 预热 而趋于平稳 但第 2 代和大型对象堆可能除外 在垃圾收集期间 每个堆 0
  • 限制纬度和经度值的模数

    我有代表纬度和经度的双精度数 我可以轻松地将经度限制为 180 0 180 0 具有以下功能 double limitLon double lon return fmod lon 180 0 360 0 180 0 这是有效的 因为一端是排
  • 为什么 CMake 不通过在定义该变量之前创建的 CMAKE_CXX_STANDARD 将语言标准编译标志添加到目标?

    我在用着cmake version 3 22 1 and c Ubuntu 11 3 0 1ubuntu1 22 04 11 3 0 以及非常简约的CMakeLists txt 我无法让 CMAKE 使用 C 20 Setting set
  • 使用 std::string 导致 Windows“找不到入口点”[重复]

    这个问题在这里已经有答案了 当我用 G C C 编译它时 include
  • 将 gcov 与 CMake/CDash 结合使用的详细指南?

    我在我的项目中使用 CMake 并设置了 cdash 服务器以进行连续 夜间构建 一切运行良好 通过设置 crontab 我们可以将每小时 每晚的构建 测试结果自动上传到我们的 cdash 服务器 我的下一步是将测试覆盖率报告添加到构建中
  • 如何在 asp .net mvc 2 中对不直接属于我的模型的对象使用 DisplayFor()?

    我确信我在这里遗漏了一些非常简单的东西 我创建了一个自定义日期时间显示模板 使用以下方法时效果很好 但是 我遇到了这样的情况 在部分控件内 我在 for 循环中迭代模型中的对象 我想要一个 DateTime 属性来使用显示模板 但我不知道如
  • 通过 Nuke.Common/NuGet.CommandLine 部署 NuGet 包时如何通过 Azure Auth

    我正在尝试通过 Azure DevOps 上的 Nuke 和 CI CD 自动执行 NuGet 包更新 一切都构建得很好 但在 PushNuGet 步骤中 该过程尝试通过弹出窗口向 Azure 进行身份验证 这显然从未在 in devops
  • 将 libpng 链接到 android 原生项目

    我在尝试在本机 Android 项目中加载 libpng 时遇到问题 编译器似乎无法识别 libpng 函数 但可以识别类型 如 png byte 它可以正常编译类型 但如果我添加函数 则会抛出错误 这是编译输出 Windows 7 cmd
  • 在 C# 4.0 中,是否可以从泛型类型参数派生类?

    我一直在尝试这个 但我似乎无法弄清楚 我想做这个 public abstract class SingletonType
  • C++ 静态工厂构造函数

    我正在进行模拟 它需要创建多个相当相似的模型 我的想法是有一个名为 Model 的类并使用静态工厂方法来构造模型 例如 模型 createTriangle or 模型 createFromFile 我从以前的 java 代码中汲取了这个想法
  • “sizeof”对不完整类型列表结构 C 的无效应用

    我正在尝试实现一种处理页面错误的替换算法 因此 我尝试使用 malloc 创建一个循环链表 但出现以下错误 无效的应用程序sizeof to incomplete typepageInMemory 以下是代码 typedef struct
  • Facebook Graph API“/userid/feed”返回空白

    我正在使用 Facebook C SDK 但似乎无法使用 Graph API 获取反馈数据 我已从用户那里获得了以下扩展权限 范围 离线访问 publish stream publish checkins create event read
  • 当“多次安装 MSBuild”时,Dotnet 项目转换尝试转换失败

    try convert w Test csproj target framework netstandard2 0 结果是 Multiple installs of MSBuild detected please select one In
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • STL 向量、迭代器和插入 (C++)

    我有一个将向量的迭代器传递到的方法 在这个方法中 我想向向量中添加一些元素 但我不确定当只有迭代器时这是否可行 void GUIComponentText AddAttributes vector
  • 为 C++ 类播种 rand()

    我正在开发一个 C 类 它使用rand 在构造函数中 我真的希望这个班级在几乎所有方面都能照顾好自己 但我不知道在哪里播种rand 如果我播种rand 在构造函数中 每次构造我的对象类型的新实例时都会对其进行播种 因此 如果我按顺序创建 3
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • Android NDK - 仅用 C/C++ 编写

    有没有一种可能的方法可以使用 C C 编写整个 NDK 应用程序 而无需像 hello jni 示例项目 HelloJni java 中那样的 Java 入门 类 以某种方式创建一个 HelloJni c 来执行相同的操作 从 Androi
  • GetActiveObject() 与 GetObject() -- MK_E_UNAVAILABLE 错误

    All 我在将一些 VBA 代码转换为 C 时遇到一些问题 我们有一个充当本地 COM 服务器的第 3 方应用程序 在我们使用的VBA代码中获取对象 获取对现有对象的引用 e g Set appHandle GetObject ProgId

随机推荐

  • 是否有一个 iOS“厨房水槽”应用程序可以在任何地方获取源代码? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在学习 iOS 开发
  • 带有 {fmt} 的自定义格式说明符用于自定义类

    在格式化我自己的自定义类型时 我将如何允许自定义填充等 struct S int x template lt gt struct fmt formatter
  • Sqlite 检查逗号分隔的数字字符串是否包含数字

    如何检查Sqlite中的字符串是否包含数字 该字符串是逗号分隔的正数 不以 0 开头 我需要检查它是否包含其他数字 Ex Is 5 in 1 2 1 gt 否 Is 5 in 35 55 15 gt 否 Is 5 in 5 gt 是的 Is
  • 如何从 9 个大小为 N 的数组快速创建 N 个 3x3 矩阵的数组?

    假设我有 9 个大小为 N 的数组 A B C J 我想创建一个由 N 3x3 矩阵组成的新数组 例如 matrices i A i B i C i D i E i F i G i H i J i 一个简单的解决方案是将每个条目添加到数组中
  • 停止 Flask 复制加载的变量

    我正在构建一个基本的云基础设施管理站点 但列出虚拟机的页面有问题 Flask 应用程序会拉取通过各种云平台的 API 生成的列表 格式如下 vm list vmid name state platform 该列表是通过循环 API 输出并附
  • Powershell,查看(循环)所有驱动器

    我是 Powershell 新手 我尝试在网上寻找问题的解决方案 但似乎找不到 基本上我需要写一些东西 让 powershell 浏览所有驱动器和目录以找到以下内容 文件总数 不包括文件夹 最大文件大小 平均文件大小 总文件大小 这是我到目
  • 什么是最好的 JSON JavaScript polyfill

    我正在寻找一个 JSON polyfill 用于旧版浏览器中的 JSON 支持 我可以在我正在编写的一些 JavaScript 中使用它 我查看并发现 JSON2 和 JSON3 非常流行 并且我读到 JSON3 是 JSON2 的替代品
  • 在 Watch InterfaceController.swift 中获取 MMWormhole 的未解析标识符

    我的 Apple Watch 项目是用 Swift 编写的 我已经使用CocoaPods来安装MMWormhole 我创建了桥接标头 如以下链接中所述 http bencoding com 2015 04 15 adding a swift
  • 如何在字段级别忽略未知字段?

    我在请求中使用另一个模块中的类 public class KeyInput NotNull private Long id NotNull private String startValue NotNull private String e
  • 继承基类的构造函数

    对于以下代码 struct Base protected Base Base int struct Derive public Base public using Base Base int main Derive d1 Derive d2
  • 为什么mapreduce作业中需要setMapOutputKeyClass方法

    当我编写mapreduce程序时 我经常写这样的代码 job1 setMapOutputKeyClass Text class 但为什么我们要显式指定 MapOutputKeyClass 呢 我们已经在映射器类中指定了它 例如 public
  • C++ 中的前向声明是什么? [复制]

    这个问题在这里已经有答案了 这个答案 says 最后 typedef struct Foo 声明一个匿名结构并为其创建一个 typedef 因此 对于此构造 它在标记命名空间中没有名称 只有 typedef 命名空间中的名称 这意味着它也不
  • AWS EMR 并行映射器?

    我正在尝试确定我的 EMR 集群需要多少个节点 作为最佳实践的一部分 建议是 您的工作所需的映射器总数 处理时间 每个实例容量 所需时间 如下所述 http www slideshare net AmazonWebServices amaz
  • 如何使用 asternet 从星号获取变量值

    我用asterNet用于管理事件 INasterisk 我需要获取变量的值 result 在 c 中来自dialplan query exten gt test 1 NoOp test same gt n Answer same gt n
  • 列出来,不丢失参考

    面试回来 我与您分享 欢迎一个好的 准确的答案 目的是 你有一个静态方法 这个方法接收一个IList
  • c 将 char* 拆分为 char**

    我正在从文件中读取一行 逐个字符 使用 fgetc 其中所有字段 名字 姓氏 均由 我现在想做的是创建一个char 将所有字符添加到其中并替换 by 0这样我就可以有效地获得所有字段的列表 这实际上有可能吗 当我创建一个 char 时 例如
  • 如何重置反应组件,包括所有可传递可达的状态?

    我偶尔会有一些概念上有状态的反应组件 我想重置它们 理想的行为相当于删除旧组件并读取新的原始组件 React提供了一个方法setState它允许设置组件自己的显式状态 但排除隐式状态 例如浏览器焦点和表单状态 并且还排除其子级的状态 捕获所
  • 更改工作文件夹位置

    我想更改工作文件夹的位置 如何在我的 SVN 存储库中进行更改 我正在使用 TortoiseSVN 客户端 如果您想移动整个工作副本 只需将其移动到文件系统中即可 如果您想移动工作副本中的文件夹并稍后提交移动 请右键单击该文件夹 然后选择
  • 小牛队上的 PyQt4 和 python 3

    我在 Xubuntu 中制作了一个 python 应用程序 目前正在尝试在 Mavericks 上运行 该项目的 GUI 部分使用 PyQt4 我目前正在尝试在 Mavericks 上安装 PyQt4 并在运行时出现以下错误brew ins
  • .NET 嵌套类

    我正在开发的当前类库将有一个基类 Field 其中包含超过 50 个特定的 字段 类型 这些类型将从 Field 继承并嵌套以保持可读性 例如 abstract class Field public int Length get set p