【发布时间】:2020-05-22 22:44:49
【问题描述】:
经过大量环顾(包括类似但不相同的问题),我希望我的问题是有意义的,有人可以帮助我解决这个问题。
我有很多类,比如 ClassA、ClassB、ClassC 等,它们都出于特定原因而存在。 我有另一个用于测试目的的类,它包括两个属性,设置如下:
public class Test : Countable<TestScenario>
{
//test completed
public bool completed { get; set; } = false;
//break or error (stop further execution) or not
public bool breakOnError { get; set; } = true;
//test result
public bool success { get; set; } = false;
//what did we test
public string testCase { get; set; } = string.Empty;
//what data we got as result
public object testDataResult { get; set; }
public Test()
{
}
}
我的问题是:我实例化了这个类,即 Test myTest = new Test();等等,我需要分配一个类,比如 myResult(包含几十个带值的属性)。
我需要这样做(类似):
Test myTest = new Test();
myTest.testDataResult = myResult;
可以安全地假设,例如,如果有一个值为 18 的 myResult.SomeProperty,我想从 myTest.testDataResult.SomeProperty 中查看它 即
Console.WriteLine(myTest.testDataResult.SomeProperty.ToString());
//18
这可能吗?环顾四周 Binaryformatters 和 Reflection,一个例子似乎也不错 (https://www.codeproject.com/Articles/1111658/Fast-Deep-Copy-by-Expression-Trees-C-Sharp) 在 SO (Faster deep cloning) 中作为链接提到,但我做不到,这超出了我的经验水平。
有人可以帮我举一个可行的例子吗?
【问题讨论】:
-
超过一半的代码与您在此处尝试询问的内容无关。请更新帖子以包含复制您的问题所需的代码,以便我们为您提供帮助。
and after lots of things that got executed, a final task returns one (of hundreds..) or objects这是什么意思,我在代码中没有看到任何这些东西...... -
@Çöđěxěŕ 抱歉,我只是举了一个例子,说明我有什么以及我需要去哪里,如果可能的话。我没有其他代码,试图弄清楚如何去做.. 感谢您查找此内容,谢谢。
-
没有理由道歉,没关系 :) 恐怕我不明白你在这里的意图。
-
@Çöđěxěŕ 按照建议编辑了问题的描述。
-
@ Çöđěxěŕ 我有许多方法返回 obj(类),每个方法都不同,例如 myClassA、myObjectB 等,其中包含值。我正在尝试将整个类分配给一个名为 Test 的类的属性。原因是,我试图创建特定类型的属性,即
public objectA myProperty1 {get; set;},然后是public objectB myProperty2 {get; set;}等,但是不同类型的类太多(objectA、B..等)所以我想知道我是否可以声明一个通用属性,如public object myProperty {get; set;}然后关闭(当然一次一个)我需要的任何对象...
标签: c# properties copy clone