背景:以前在VS2002中C#开发的程序,现在移交到VS2008上运行。
问题:在VS中的类型转换。不知道是强制转换,还是属于重复定义。
现象如下:具体代码略:
public static void Method( sting [] InputDate)
{
。
。
string InputDate[x] = "";
............
}
在以前的系统中跑是没有问题的,这样的写法(请不要质疑上述的语法,一开始我也曾质疑,但是那个程序已经跑了好多年了,现在只是服务器升级,顺便这个程序也升一下。)。不知道是属于重新定义,还是转换类型的问题
现在移交到VS2008上,编译不过,解决方案我也有了,就是Convert.TOsting().
关键问题,是如何解释上述问题?客户需要。我猜想是不是开发版本的问题(小弟没有用过2002,不知道),但那只是猜想没有说服力。。所以希望资深的老大哥解释一下。最好来点有说服力的文档,或者资深的经验说明
问题:在VS中的类型转换。不知道是强制转换,还是属于重复定义。
现象如下:具体代码略:
public static void Method( sting [] InputDate)
{
。
。
string InputDate[x] = "";
............
}
在以前的系统中跑是没有问题的,这样的写法(请不要质疑上述的语法,一开始我也曾质疑,但是那个程序已经跑了好多年了,现在只是服务器升级,顺便这个程序也升一下。)。不知道是属于重新定义,还是转换类型的问题
现在移交到VS2008上,编译不过,解决方案我也有了,就是Convert.TOsting().
关键问题,是如何解释上述问题?客户需要。我猜想是不是开发版本的问题(小弟没有用过2002,不知道),但那只是猜想没有说服力。。所以希望资深的老大哥解释一下。最好来点有说服力的文档,或者资深的经验说明
这一句你觉得是对的?
或者 是string 将串初始化为空?
{
。
。
string InputDate[x] = ""; ............
}
sting [] InputDate
重复定义
怎么编译通过的?
http://topic.csdn.net/u/20100707/13/6819604f-1c91-47be-8086-7c0e50311356.html?12296
public static void Method( ref string[] GetDate)
{
//GetDate[0]:SM GetDate[1]:PL GetDate[2]:SS GetDate[3]:OM
try
{
for(int i=0; i <= 3 ; i++)//SM PL SS OM 为NULL的情况下,用“”赋值。
{
if(GetDate[i].ToString() == null || GetDate[i].ToString() == "" )
{
(string)GetDate[i] = "";}
}
catch()
}
由于使用了ref参数,所以你可以对GetDate[i]进行修改,以便调用方传入的字符串数组,经过Method方法修改后,可以保留修改结果。