我有以下问题。我希望能够在不使用反射的情况下将其设置为传递的引用,可以这样做吗?
//partial class of a Linq-to-SQL class
public partial class Product
{
public Product (Product product, List<ProductAttributes> productAttributes)
{
// without individually setting all the properties
//then just set any other properties
this.ProductAttributes = productAttributes;
}
}
答案 0 :(得分:3)
你基本上不能。
你只能在结构中设置this
,即使这样,通常也是一个坏主意:)
如果您可以解释您尝试实现的更高级别目标,我们可以提供更多帮助 - 但您只是无法更改this
的值引用类型,有或没有反射。
答案 1 :(得分:2)
您无法在课程中为this
分配任何内容,因为只读。
我怀疑你是因为设计糟糕而想这样做的。您可能应该发布您真正想要的内容,而不是您希望如何,以便我们提供更合适的答案。
答案 2 :(得分:1)
您无法在引用类型中设置this
(并且在值类型中设置它可能不是要宽恕的东西)。如果你想要做的是对象的字段或属性的浅(或深)副本,那么你有两个选择:
语言和运行时都没有任何内置工具来自动执行浅或深复制,并且有充分的理由。无法确定任何给定类型的外观。
答案 3 :(得分:0)