[英]Accessing a serialized object contained in non-serialized class in c#
我有这样的程序代码
namespace Ask{
public class TestSerialize
{
[Serializable]
public struct position
{
public int x;
public int y;
}
};
public class SubTest:Panel
{
public TestSerialize.position pos;
}
public class Test
{
public static void main(String args[])
{
SubTest t=new SubTest();
Console.WriteLine(t.pos.x);
}
}
}
现在在类测试中访问pos.x显示警告
警告访问“ Ask.SubTest.pos”上的成员可能会导致运行时异常,因为它是按引用编组类的字段
我对序列化概念比较虚弱,因此请提出如何减轻这种警告的建议? 有解决方法还是我需要重新设计? 我不想在这里遇到异常。无论如何要避免它?
您必须将struct的x和y更改为public。
[Serializable]
public struct position
{
public int x;
public int y;
}
我认为结构成员的问题使他们公开。 请参阅下面的程序完整代码副本。 只有结构成员是公开的,并且可以在没有任何警告的情况下进行编译。
public class Program
{
public static void Main(string[] args)
{
SubTest t = new SubTest();
Console.WriteLine(t.pos.x);
}
}
public class TestSerialize
{
[Serializable]
public struct position
{
public int x;
public int y;
}
};
public class SubTest
{
public TestSerialize.position pos;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.