gpt4 book ai didi

c# - 如何确定对象类型是否为内置系统类型

转载 作者:IT王子 更新时间:2023-10-29 03:57:56 24 4
gpt4 key购买 nike

我正在写一个简单的 List<t>到 CSV 转换器。我的转换器检查所有 t在 List 中并获取所有公共(public)属性并将它们放入 CSV 中。

当您使用具有一些属性的简单类时,我的代码工作得很好(如预期的那样)。

我想得到 List<t> CSV 转换器也接受系统类型,如字符串和整数。对于这些系统类型,我不想获得它们的公共(public)属性(例如 Length、Chars 等)。因此我想检查对象是否是系统类型。我所说的系统类型是指内置的 .Net 类型之一,例如 string, int32, double

使用 GetType() 我可以找到以下内容:

string myName = "Joe Doe";

bool isPrimitive = myName.GetType().IsPrimitive; // False
bool isSealed = myName.GetType().IsSealed; // True
// From memory all of the System types are sealed.
bool isValueType = myName.GetType().IsValueType; // False

// LinqPad users: isPrimitive.Dump();isSealed.Dump();isValueType.Dump();

如何确定变量 myName 是否为内置系统类型? (假设我们不知道它是一个字符串)

最佳答案

以下是几种可能性:

  • myName.GetType().Namespace == "System"
  • myName.GetType().Namespace.StartsWith("System")
  • myName.GetType().Module.ScopeName == "CommonLanguageRuntimeLibrary"

关于c# - 如何确定对象类型是否为内置系统类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5932580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com