【发布时间】:2011-10-24 12:51:56
【问题描述】:
我经常发现自己需要创建一个类作为某些数据的容器。它只是简单地使用,但我仍然需要创建类。像这样:
public class TempObject
{
public string LoggedInUsername { get; set; }
public CustomObject SomeCustomObject { get; set; }
public DateTime LastLoggedIn { get; set; }
}
public void DoSomething()
{
TempObject temp = new TempObject
{
LoggedInUsername = "test",
SomeCustomObject = //blah blah blah,
LastLoggedIn = DateTime.Now
};
DoSomethingElse(temp);
}
public void DoSomethingElse(TempObject temp)
{
// etc...
}
通常我的临时对象有更多的属性,这就是我想首先将它们分组的原因。我希望有一种更简单的方法,例如使用匿名类型。问题是,当我将它传递给另一个方法时,我不知道要接受什么。类型是匿名的,那我该怎么接受呢?
public void DoSomething()
{
var temp = new
{
LoggedInUsername = "test",
SomeCustomObject = //blah blah,
LastLoggedIn = DateTime.Now
};
// I have intellisense on the temp object as long as I'm in the scope of this method.
DoSomethingElse(temp);
}
public void DoSomethingElse(????)
{
// Can't get my anonymous type here. And even if I could I doubt I would have intellisense.
}
有没有更好的方法来为一堆不同的类型创建一个临时容器,还是每次我需要一个临时对象来将事物组合在一起时都需要定义类?
提前致谢。
【问题讨论】:
-
您可以在您的 TempObject 和相关成员上使用 internal 修饰符而不是 public,这样其他程序集将无法使用该类型。
标签: c# .net oop object anonymous-types