错误CS0236字段初始值设定项无法引用非静态字段,方法或属性
我一直试图解决这个问题,但我不能这样做 这是我正在制作的加密/解密程序
string hash = (materialSingleLineTextField4.Text);
private void materialRaisedButton1_Click(object sender, EventArgs e)
{
//Encrypt Function
byte[] data = UTF8Encoding.UTF8.GetBytes(materialSingleLineTextField1.Text);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 })
{
ICryptoTransform transform = tripDes.CreateEncryptor();
byte[] results = transform.TransformFinalBlock(data, 0, data.Length);
materialSingleLineTextField2.Text = Convert.ToBase64String(results, 0, results.Length);
}
}
}
我的错误在string hash = (materialSingleLineTextField4.Text);
第1行,它以红色突出显示materialSingleLineTestField4
有人可以帮帮我吗?我有困难感谢c;
答案 0 :(得分:1)
您正尝试在类初始化级别的任何方法或事件的上下文之外设置此值:
string hash = (materialSingleLineTextField4.Text);
但是当这个类首次被初始化时,这没有任何意义。 materialSingleLineTextField4.Text
中没有值,甚至不保证materialSingleLineTextField4
的任何有效实例。
如果要在materialRaisedButton1_Click
方法中设置和使用该值,则将该行代码放入该方法中。如果需要,变量仍然可以在类级别范围内。但至少,将其设置为materialSingleLineTextField4.Text
的值必须在方法或构造函数中进行。