gpt4 book ai didi

c# - 从对象变量中获取类名

转载 作者:太空狗 更新时间:2023-10-30 00:14:59 27 4
gpt4 key购买 nike

我想从对象变量中获取指向的类。

例如,如果我有一个 StringBuilder 对象的实例,我随后为其设置了一个 Object 变量,我能否以某种方式知道该 Object 变量指向一个 StringBuilder 对象?

例子:

StringBuilder sbText = New StringBuilder();
Object oMyObject = sbText;
// How can I determine that oMyObject points to an instance of StringBuilder object using only oMyObject

我已经尝试在我能想到的每一种组合中使用 typeof(oMyObject)oMyObject.GetType() 并且仍然不断想出 对象。似乎应该有一个相当直接的方法来做到这一点,可能有,但我没有找到。

我必须不同意将此标记为与他们提供链接的问题重复的问题的用户。我的问题的标题可能没有它应该的那么清楚(我现在已经稍微改变了它)并且两个问题的答案可能涉及相同的方法但是提出另一个问题的用户正在寻找一种方法来实例化一个对象与另一个对象具有相同的类型。当我只有一个 Object 类型的变量时,我只是在寻找获取类名称的方法。我永远不会通过查看该问题得出 Reed 提供的答案,而且我不记得它曾经出现在本网站的搜索或更广泛的 Google 搜索中。

最佳答案

GetType() 应在运行时提供对象的正确 System.Type

例如,打印"StringBuilder":

StringBuilder sbText = new StringBuilder();
Object oMyObject = sbText;

Console.WriteLine(oMyObject.GetType().Name);

请注意,如果您只想检查特定的类类型,is(或 as)通常比获取 Type 更干净>:

StringBuilder sbText = new StringBuilder();
Object oMyObject = sbText;

//...

StringBuilder sb = oMyObject as StringBuilder;
if (sb != null)
{
// oMyObject was a StringBuilder - you can use sb as needed:
sb.AppendText("Foo");
}

关于c# - 从对象变量中获取类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279663/

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