C# 编译错误:只能将赋值、调用、递增、递减和新对象表达式用作语句

C# 编译错误:只能将赋值、调用、递增、递减和新对象表达式用作语句,c#,C#,错误:仅赋值、调用、递增、递减和新对象 表达式可以用作语句 只能将赋值、调用、递增、递减和新对象表达式用作语句 文件中提到: 程序执行的操作用语句表示。常见的操作包括声明变量、赋值、调用方法、循环集合以及分支到一个或另一个代码块,具体取决于给定的条件 您的基本问题是缺少括号,这些括号将告诉编译器您要在以下行中调用方法: string cipherData; byte[] cipherbytes; byte[] plainbytes; byte[] plainbytes2; byte[] plai

错误:仅赋值、调用、递增、递减和新对象 表达式可以用作语句

只能将赋值、调用、递增、递减和新对象表达式用作语句

文件中提到:

程序执行的操作用语句表示。常见的操作包括声明变量、赋值、调用方法、循环集合以及分支到一个或另一个代码块,具体取决于给定的条件

您的基本问题是缺少括号,这些括号将告诉编译器您要在以下行中调用方法:

string cipherData;
byte[] cipherbytes;
byte[] plainbytes;
byte[] plainbytes2;
byte[] plainkey;

SymmetricAlgorithm desObj;
private void button1_Click(object sender, EventArgs e)
{
    cipherData = textBox_Plain_text.Text;
    plainbytes = Encoding.ASCII.GetBytes(cipherData);
    plainkey = Encoding.ASCII.GetBytes("123456789abcdef");
    desObj.Key = plainkey;
    // choose other appropriate modes (CBC, CFB, CTS, ECB, OFB)
    desObj.Mode = CipherMode.CBC;
    desObj.Padding = PaddingMode.PKCS7;
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    CryptoStream cs = new CryptoStream(ms, desObj.CreateEncryptor(), new CryptoStreamMode());
    cs.Write(plainbytes, 0, plainbytes.Length);
    cs.Close;
    cipherbytes = ms.ToArray();
    ms.Close;
    textBox_Encrypted_text.Text = Encoding.ASCII.GetString(cipherbytes);
}
因此,将其更改为:

cs.Close;
ms.Close;
否则,编译器会认为您试图访问字段或属性,并告诉您这不能作为语句单独存在。如错误消息所述,您可以执行以下任一操作:

任务

召唤

递增、递减

新对象表达式


错误到底在哪里?请提供一个,清楚地说明错误所在。看起来您在之后缺少括号。关闭。应该是。关闭,因为它是方法调用。您保留了几个未经处理的一次性物品。Encoding.UTF8是比.ASCII更好的选择
cs.Close();
ms.Close();
int c = ms.Capacity;
ms.Close();
ms.Capacity++;
new MemoryStream();