我有一个较旧的Oracle数据库的工作,我觉得有可能是一个更好的方式去了解我拆箱从数据库中检索值.
目前,我有一个充满不同类型特定方法的静态类:
public static int? Int(object o)
{
try
{
return (int?)Convert.ToInt32(o);
}
catch (Exception)
{
return null;
}
}Run Code Online (Sandbox Code Playgroud)
..等等,对于不同的类型,但我觉得应该有更好的方法?如果我想取消装箱值,我会做一些......
Run Code Online (Sandbox Code Playgroud)int i;
i = nvl.Int(dataRow["column"]); //In this instance, "column" is of a numeric database type
我想过使用泛型类来处理所有不同的类型,但我无法找到最佳方法.
有任何想法吗?
我觉得这很无知,但是有人能够向我解释为什么会这样吗?
class MyClass{ public int i {get; set; } }
class Program
{
static void Main(string[] args)
{
MyClass a = new MyClass();
MyClass b = new MyClass();
b.i = 2;
a = b;
a.i = 1;
Console.Write(b.i + "\n"); //Outputs 1
}
}
这对我来说是有意义的,因为我使用指针和所有那些伟大的东西,但我的印象是,使用C#,"b"将保持独立于"a".
我只是使用了一些非常糟糕的做法吗?也许有人可以指出我解释为什么在C#中这样的事情?
谢谢.