首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

out参数的有关问题,

2012-09-16 
out参数的问题,急!在线等C# codestatic void Main(string[] args){ConsoleTest.goods modenew ConsoleTes

out参数的问题,急!在线等

C# code
        static void Main(string[] args)        {            ConsoleTest.goods mode=new ConsoleTest.goods();            testReference<ConsoleTest.goods>(out mode);            Console.WriteLine(mode.Barcode);            Console.ReadKey();        }        private static void testReference<T>(out T model) where T : new()        {            model = new T();            ConsoleTest.goods good = (model as ConsoleTest.goods);            testReference2<ConsoleTest.goods>(out good);                   }        private static void testReference2<T>(out T model) where T : new()        {            model = new T();            ConsoleTest.goods good = model as ConsoleTest.goods;            good.Barcode = "111";        }

按照我想的 应该输出“111”,为什么输出为“”

[解决办法]
testReference2中重新new的model,这个和你testReference1中的ConsoleTest.goods good不是一个
[解决办法]
问题出在这:

 private static void testReference<T>(out T model) where T : new()
{
model = new T();
ConsoleTest.goods good = (model as ConsoleTest.goods);
testReference2<ConsoleTest.goods>(out good);

}

你并没有将 model 往下传递。 testReference2 修改了 good 但没有修改最外面传入的 model。
good 在 testReference<T> 中只是临时变量。
C# code
private static void testReference<T>(out T model) where T : new(){    model = new T();    //ConsoleTest.goods good = model as ConsoleTest.goods;    testReference2<T>(out model);} 

热点排行