c#从对象获取属性

时间:2010-11-23 15:17:36

标签: c#

我对C#有点新鲜,我得到了这个从mssql数据库获取记录的脚本。它将密钥转换为对象。

及其:

Object obj = result[i];

当我在声明后在行上启用断点时,我看到对象内的数据。现在我需要使用数据访问该属性,但因为我对C#有点新,我不知道该怎么做。

让我们说这个属性叫做:name 我用属性名称创建了一个自己的新类。

当我尝试使用以下命令获取对象的名称时:

myObject.Name = (string) obj.Name;

IDE已经发出错误,即obj中的属性不可用。

如何访问对象的name属性以将其传递给我自己的对象?

谢谢!

4 个答案:

答案 0 :(得分:1)

所以result[i]是您班级的一个实例(为方便起见,我会称之为Foo)?然后你可以说

Foo obj = result[i];
myObject.Name = obj.Name;

Object obj = result[i];
myObject.Name = ((Foo)obj).Name;

答案 1 :(得分:0)

您需要将对象转换为正确的类型。例如。如果您的对象是:

class MyObject
{
    public string Name { get; set; }
}

比你需要像:

MyObject obj = (MyObject)result[i];

答案 2 :(得分:0)

您正在尝试访问Object类的属性,但它没有属性。您必须 cast 您的obj到您创建的类,具有Name属性的类,或者(更简单地),在阅读时数据库将其直接读入您的类的实例,例如:

MyClass obj = result[i]

答案 3 :(得分:0)

result[i]中有哪些数据?它只是数据库中记录中字段的字符串吗? (也就是说,resultDataRow吗?)就目前而言,你只是把它放在Object里面,而result[i]对此并不了解。基本上,你正在“装箱”它并从编译器中删除对象数据的知识。

如果myObject.Name = System.Convert.ToString(result[i]); 只是一个字符串,请尝试以下内容:

result[i]

现在,这是相当初学的,因为这里还有其他考虑因素。如果null永远是{{1}},那么这将引发异常,等等。但是当你正在学习时,应该获得你正在寻找的数据。