C# 将string转换为byte
privatebyte[]mContentVersion;publicbyte[]ContentVersion{get{returnthis.mContentVersio...
private byte[] mContentVersion;
public byte[] ContentVersion
{
get { return this.mContentVersion; }
set { this.mContentVersion = System.Text.Encoding.Default.GetBytes( MainForm.mMainForm.ContentInfoSetForm.Version); }
}
我可以取到version的值, 但mContentVersion提示为不存在,请问大神们这是为何 展开
public byte[] ContentVersion
{
get { return this.mContentVersion; }
set { this.mContentVersion = System.Text.Encoding.Default.GetBytes( MainForm.mMainForm.ContentInfoSetForm.Version); }
}
我可以取到version的值, 但mContentVersion提示为不存在,请问大神们这是为何 展开
1个回答
展开全部
你的代码不完整,但仅从现有的来看,你的set访问器并不使用value,而是使用固定值,那就造成一个问题,只要你不对ContentVersion属性赋值,set访问器就不会执行,你预期的对 this.mContentVersion赋值的行为就没有发生,所以mContentVersion没有值。不然你试试加一条语句:
XXX(你的类实例).ContentVersion = new byte[]();
然后再查看mContentVersion,就有值了。有意思的是,new byte[]()并没有交给mContentVersion,因为你的set访问器压根就不理会它。
总的来说,这种写法是有害的,对于这种场景,你应当在构造函数中或自动初始化(c# 6.0以上)时对mContentVersion赋值。
XXX(你的类实例).ContentVersion = new byte[]();
然后再查看mContentVersion,就有值了。有意思的是,new byte[]()并没有交给mContentVersion,因为你的set访问器压根就不理会它。
总的来说,这种写法是有害的,对于这种场景,你应当在构造函数中或自动初始化(c# 6.0以上)时对mContentVersion赋值。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询