我的函数接收一个参数'值',类型对象。我想将它分配给一个对象的成员,但是这个转换不会隐式发生,所以我需要明确地指定它。不过,我不想竟指定当前类型的对象成员,所以我可以这样做:动态确定类型投到(C#)
positiveOrder.OrderID = (int)value;
但是,如果业务需求的变化和OrderIDs生成并存储在不同的方式,包括一个类型改变为字符串为GUIDS例如,我将不得不回到这里并改变它,这是不希望的凝聚力。我已经与不同的代码排列尝试像
positiveOrder.OrderID = value as thisOrder.OrderID.GetType();
或
positiveOrder.OrderID = (typeof(thisOrder.OrderID)) value;
,但似乎没有奏效。以编程方式指定要转换的类型的任何想法?它可以在编译时或运行时完成,因为Order类不会更改。
“如果明天我更改Order类以将其OrderID成员保存为String,而不是”为什么要这样做?而这又如何影响'价值'的类型(这也可能会改变)? – Codesleuth 2012-07-06 12:44:49
值总是作为对象发送,通过代码我不控制。该代码不知道我的实现细节,这就是为什么它发送它离开铸件给我。根据不断变化的业务需求,我可能必须更改OrderID的类型。现在,我在模型中使用了简单的增量整数,但在最终的应用程序中,我可能会使用字符串来代替。我只是不想通过指定两次OrderID的类型来重复自己,这样如果我必须更改它,我不需要更改它两次。这是一个比功能性问题更好的设计问题。 – Neil 2012-07-06 17:04:54