C# 中的泛型类成员?

2024-01-03

嘿,我想我的想法是错误的,但我不确定什么是最好的。我想要一个带有成员变量的类,该变量可以是任何类型,具体取决于当时的需要。到目前为止,我有这样的事情:

    public class ConfigSetting<T> {
    private T value;

    public T GetValue() {
        return value;
    }
    public void ChangeValue() {

    }

    public ConfigSetting(string heading, string key) {
        this.value = DerivedMethods.configsettings.SettingGroups[heading].Settings[key].RawValue;
    }
}

目前,“this.value”行右侧返回的类型是字符串。我知道这里似乎我不需要使用除字符串类型之外的任何东西,但最终我将扩展构造函数,使得“this.value”可以是字符串、int、float 或 bool。

不管怎样,我的编译器说“无法将‘string’转换为‘T’”,所以我认为我正在做一些非常倒退的事情。

谢谢。


您遇到了问题,因为这不是泛型的良好使用。如果泛型类型参数只能以四种不同的方式构造——字符串、浮点数、布尔值和整数——那么这不是很好generic。我希望通用的东西可以是任何类型.

如果我有一个东西只能是四种类型中的一种,那么我会像这样建模:

abstract class ConfigSetting
{ /* shared code here */  }

class TextSetting : ConfigSetting
{ /* Code here to handle string settings */ }

class BooleanSetting : ConfigSetting
{ /* ... 

等等。然后我可能会给它们每个人一个内部构造函数,并将基类变成factory对于派生类,使用工厂模式。

仅当您的解决方案确实有效时才使用泛型generic. Like List<T>例如,可以是一个列表anything:整数、字符串、数组、字典、函数等等。如果您正在建模的事物具有少量可能的类型,则只需为每种类型创建一个即可。

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

C# 中的泛型类成员? 的相关文章

  • JSON.Net 反序列化返回“null”

    我正在使用 JSON Net 反序列化 JSON 字符串 JSON 字符串是 string testJson Fruits Apple color red size round Orange Pro
  • 如何使用 ASP.NET MVC 编辑多选列表?

    我想编辑一个如下所示的对象 我希望用 UsersGrossList 中的一个或多个用户填充 UsersSelectedList 使用 mvc 中的标准编辑视图 我只得到映射的字符串和布尔值 下面未显示 我在 google 上找到的许多示例都
  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • MFC CList 支持复制分配吗?

    我在 MSVC 中查找了 CList 定义afxtempl h http www cppdoc com example mfc classdoc MFC AFXTEMPL H html并记录在MSDN http msdn microsoft
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 如何以编程方式播放 16 位 pcm 数组 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个包含 16 位 pcm 值的短 数组 我希望能够在不添加任何标题 也不将任何文件保存到内存的情况下播放它 我知道我可能需要一个提供
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • 时间:2019-03-17 标签:c++fstream并发访问

    如果从不同的进程 线程同时访问文件会发生什么 据我所知 没有锁定文件的标准方法 只有操作系统特定的功能 就我而言 文件将被经常读取而很少写入 现在如果A打开一个文件进行读取 ifstream 并开始读取块 和B打开相同的文件进行写入 ofs
  • 如何在 C# 中获取 Json 数组?

    我有一个像这样的 Json 字符串 我想将它加载到 C 数组中 当我尝试这样做时 我收到异常 我的字符串 customerInformation customerId 123 CustomerName Age 39 Gender Male
  • 无法为 wsdl 文件创建服务引用

    I have wsdl文件和xsd我本地机器上的文件 我想在项目中添加服务引用 我没有网络服务 我只有wsdl file 我收到以下错误 The document was understood but it could not be pro
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • doxygen c++:记录由“using”声明公开的私有继承成员

    作为一个例子 我有以下课程 class A public void methodOne class B private A public Brief description using A methodOne 我还没有找到强制 doxyge
  • ALTER TABLE ... ADD CONSTRAINT 失败时将事务回滚到保存点

    有没有办法在事务中添加检查约束and如果失败回滚到以前的保存点 而不是回滚整个事务 就我而言 当 ALTER TABLE ADD CONSTRAINT 命令失败时 事务无法回滚到保存点 尝试这样做会引发 InvalidOperationEx
  • EnumDisplayDevices 与 WMI Win32_DesktopMonitor,如何检测活动监视器?

    对于我当前的 C 项目 我需要为在大量计算机上连接并处于活动状态的每个监视器检测一个唯一的字符串 研究指出了两种选择 使用 WMI 并查询 Win32 DesktopMonitor 以获取所有活动监视器 使用 PNPDeviceID 来唯一
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • Xamarin.Forms UWP 项目中标题栏和选项卡之间令人恼火的空白

    我几乎是新手Xamarin Forms我正在开发一个相当简单的跨平台应用程序 该应用程序在 Android 中显示得足够好 但在 UWP 中却出现了一个愚蠢的空白 该项目由一个 TabbedPage 组成 其中包含 4 个 Navigati
  • 有没有办法直接在函数参数中格式化字符串而不是使用临时字符串?

    我有一个接受字符串 字符数组 作为参数的函数 void enterString char my string 当使用这个函数时 我经常发现自己想要输入格式化的字符串 我使用 sprintf 来做到这一点 然而 我每次都必须创建一个临时字符串
  • printf或iostream如何指定点后的最大位数

    字符串采用什么格式printf or iomanip我应该使用 iostream 中的运算符以以下格式打印浮点数 125 0 gt 125 125 1 gt 125 1 125 12312 gt 125 12 1 12345 gt 1 12
  • 如果“嵌入式”SQL 2008 数据库文件不存在,如何创建它?

    我使用 C ADO Net 和在 Server Management Studio 中创建的嵌入式 MS SQL 2008 数据库文件 附加到 MS SQL 2008 Express 创建了一个数据库应用程序 有人可以向我指出一个资源 该资
  • 这种尺寸对齐是如何工作的

    对于所提供的评论 我无法理解以下代码 这段代码的作用是什么 以及等效的代码是什么8 aligned segment size must be 4 aligned attr gt options ssize 3 Here ssize is o

随机推荐

  • 如何在 Spring Boot 中使用 @Lazy 延迟加载 RabbitMQ 队列?

    实际上 在我的 RabbitMQ 配置中 我为每个队列声明了 10 个消费者 因此 所有消费者线程都是在我的 Spring Boot 应用程序完全启动之前创建的 因此应用程序启动需要时间 我想在项目启动时延迟加载所有 Rabbitmq 队列
  • Python:使用泰勒级数逼近 ln(x)

    我正在尝试建立 ln 1 9 的近似值 精度在十位数字之内 即 641853861 我正在使用一个从 ln 1 x 1 x 构建的简单函数 到目前为止 这是我的代码 function for ln 1 x 1 x def taylor tw
  • 带鼠标滚轮的 D3 v4 平移

    如何使用 d3 js 版本 4 通过鼠标滚轮进行平移 我发现这个例子使用的是 v3 但它不适用于 v4 示例链接 http bl ocks org ahmohamed 82ac20ccc949470e3206
  • 如何禁用 Sun jvm 的内联优化?

    我需要做一些实验来展示内联对我的代码的影响 有人知道如何禁用 sun jvm 内联吗 我搜索了http www oracle com technetwork java javase tech vmoptions jsp 140102 htm
  • getRunningAppProcesses() 返回被销毁的进程

    我正在使用以下代码片段来检查我是否使用了应用程序finish ed 确实不再运行 ActivityManager am ActivityManager this getSystemService ACTIVITY SERVICE List
  • 即使库已链接,对符号的未定义引用

    当链接我正在处理的项目时 链接器给出以下错误 usr bin ld Includes and Libs lib libsfml21rca a SoundFile o undefined reference to symbol sf read
  • javafx 和可序列化

    在旧的 AWT 库中 Point类和Color类是可序列化的 JavaFX 中都没有 我想保存一个数组列表Drawable到一个文件 这是界面 import javafx scene canvas GraphicsContext publi
  • mouseover() mouseout() jQuery add/removeClass 问题

    我正在尝试使用 mouseover mouseout addClass 和 removeClass 的组合来创建一个简单的鼠标悬停效果 基本上 当用户将鼠标悬停在某个元素上时 我想应用不同的边框 1px 灰色虚线 初始状态为 1px 纯白色
  • Groovy 可以动态添加或重写 POJO 上的方法吗?

    如果我有 java class MyClass public String getName return hector 和这个类的一个实例 Groovy 可以重写实例上的 getName 方法吗 当然你可以使用动态元类 http groov
  • 创建一个包含开始日期和结束日期之间的日期的列表

    使用 SQL Server 2016 我有一个具有不同开始日期和结束日期的表 Start End 2018 01 01 00 00 2018 01 01 23 59 2018 01 12 05 33 2018 01 13 13 31 201
  • 如何在玩笑中模拟/监视 useState 挂钩?

    我试图监视 useState React hook 但我总是测试失败 这是我的 React 组件 const Counter gt const counter setCounter useState 0 const handleClick
  • 如何从本地maven存储库中删除通过install:install-file添加的jar文件?

    mvn install install file Dfile phonegap 1 1 0 jar DgroupId phonegap DartifactId phonegap Dversion 1 1 0 Dpackaging jar 我
  • System.ArgumentException 路径中存在非法字符

    我在用Path Combine 并且其中一个字符串包含 Unicode 字符 我明白了 System ArgumentException exception illegal characters in path 根据MSDN http ms
  • 转换 UTF8 文本以在 URL 中使用

    我正在开发一个国际网站 它使用 UTF8 显示非英语字符 我还使用包含项目名称的友好 URL 显然我不能在 URL 中使用非英文字符 这种转换有某种常见的做法吗 我不确定应该用哪些英文字符替换它们 有些字符非常明显 例如 到 e 但其他字符
  • Gradle 7.2:如何应用自定义 Gradle SETTINGS 插件?

    我正在将 buildSrc 约定插件迁移到独立插件中 有很多为 Project 对象创建 Gradle 插件的示例 但真正缺乏 Settings 和 Gradle 我想集中我们在 gradle settings kts 文件中使用的存储库列
  • Javascript 中弱引用的查找表

    我有一个树结构 其中动态添加和删除元素 这些元素是从网络动态加载的 我想要实现的是拥有一个查找表 将元素的 id 映射到树中的实际元素 现在 使用简单的映射或对象时的问题是它持有对树元素的强引用 这会在一段时间后使内存膨胀 由于节点 gt
  • 解析 XDocument,无需继续指定默认命名空间

    我有一些 XML 数据 类似于下面的示例 我想读取代码中的值 为什么我必须指定默认命名空间来访问每个元素 我希望所有元素都使用默认名称空间 有更合乎逻辑的方法来实现我的目标吗 XML 示例
  • 共享转换不起作用 recyclerview 到片段

    我正在尝试在我的应用程序中实现共享转换 我想要 RecyclerView 中的 ImageView 将出现在下一个片段中 以共享从 RecyclerView 到片段的转换 但它不起作用 我是这样做的 回收商的物品布局
  • 如何将数据从一个HDFS复制到另一个HDFS?

    我有两个 HDFS 设置 想要将一些表从 HDFS1 复制 而不是迁移或移动 到 HDFS2 如何将数据从一个HDFS复制到另一个HDFS 是否可以通过 Sqoop 或其他命令行 DistCp 分布式复制 是用于在集群之间复制数据的工具 它
  • C# 中的泛型类成员?

    嘿 我想我的想法是错误的 但我不确定什么是最好的 我想要一个带有成员变量的类 该变量可以是任何类型 具体取决于当时的需要 到目前为止 我有这样的事情 public class ConfigSetting