Is it Out可用于传递引用类型(即对象)
本文关键字:引用类型 对象 it Out 用于 Is | 更新日期: 2023-09-27 18:34:32
考虑以下示例,此处传递int i作为参考。
我的问题是,我可以将引用类型传递给 out 吗? 喜欢对象(即(静态空隙总和(out OutExample oe(
class OutExample
{
static void Sum(out int i)
{
i = 5;
}
static void Main(String[] args)
{
int val;
Sum(out val);
Console.WriteLine(val);
Console.Read();
}
}
现在下面的代码有一些错误,
class OutExample
{
int a;
static void Sum(out OutExample oe)
{
oe.a = 5;
}
static void Main(String[] args)
{
int b;
OutExample oe1=new OutExample();
Sum(out oe);
oe.b=null;
Console.WriteLine(oe.b);
Console.Read();
}
}
终于得到了答案!
class OutExample
{
int a;
int b;
static void Sum(out OutExample oe)
{
oe = new OutExample();
oe.a = 5;
}
static void Main(String[] args)
{
OutExample oe = null;
Sum(out oe);
oe.b = 10;
Console.WriteLine(oe.a);
Console.WriteLine(oe.b);
Console.Read();
}
}
必须在 Sum
方法中创建新OutExample
:
class OutExample
{
int a;
int b;
static void Sum(out OutExample oe)
{
oe = new OutExample();
oe.a = 5;
}
static void Main(String[] args)
{
OutExample oe = null;
Sum(out oe);
oe.b = 10;
Console.WriteLine(oe.a);
Console.WriteLine(oe.b);
Console.Read();
}
}
是的...
static void Sum(out OutExample oe)
{
oe = null;
// or: oe = new OutExample();
}
class OutExample {}
我建议你重新考虑一些事情。引用类型是对存储位置的引用。在传递它out
传递对此引用的引用。你为什么不直接经过ref
?