Object to System.String隐式转换

hor*_*acv 3 c#

我对C#中的类型转换有疑问.


Object data_obj = "test";
string data_str;
data_str = data_obj;

这会产生一个错误,声称不存在隐式转换.现在,这至少对我来说有点不直观,因为Console.WriteLine("type{0}",data_obj.GetType())产生了 System.String,但是再一次,我在C#上真的很新.

现在,越过这个,我想转换为存储的数据类型data_obj,而不必switch手动选择类型.

所以,基本上,我所问的是:有没有办法来定义从隐式转换System.ObjectSystem.String,System.Decimal等等.

语境:

我正在从ODBC连接读取到SQLServer数据库并尝试将这些行泵入Oracle数据库.现在,必须定义SQLServer和Oracle行的对应关系.现在,我从SQLServer表中读取数据没有任何问题,我将它存储在一个List<Dictionary<string,Object>>(我知道,存储行看似错误,但设计要求,你能做什么).插入部分是我遇到插入问题的地方.我基本上通过列表的元素循环(使用foreach)并逐行插入它们.在这里,我需要确定存储在数据中的数据的类型Object.

编辑:包括更多细节.

Jon*_*eet 16

不,没有办法隐含地这样做.选项:

  • ToString()显式调用(如果引用为null,将抛出异常)
  • 呼叫 Convert.ToString()
  • 使用"" + data_obj(ick,不要这样做)
  • 如果你确定Cast的data_obj真正的字符串

你为什么如此热衷于隐式转换呢?

  • @horacv:我怀疑可能有更好的方法可以做到这一点,但如果没有更多的背景,很难知道那是什么.如果您在问题中编辑更多详细信息,我们可能会提供更多帮助. (2认同)