我有以下方法:
private byte[] GetEmailAsBytes(string lstrBody)
{
byte[] lbytBody;
ASCIIEncoding lASCIIEncoding = new ASCIIEncoding();
lbytBody = lASCIIEncoding.GetBytes(lstrBody);
return lbytBody;
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是否可以转换为lambda表达式.我是新手.我试过了:
Func<string> BodyToBytes = x => {
ASCIIEncoding lASCIIEncoding = new ASCIIEncoding();
return lASCIIEncoding.GetBytes(x);
}
Run Code Online (Sandbox Code Playgroud)
但这不编译.简单地说,我希望将字符串转换为一系列字节,并且为了感兴趣,我们希望使用lambda表达式来完成此操作.
该表达式Func<string>
相当于一个不接受任何参数并返回a的函数string
.
你的例子清楚地返回一个byte[]
,但你希望它接受一个string
并返回一个byte[]
.
要解决此问题,请更改BodyToBytes
以匹配以下内容.请注意,参数的类型首先是逗号分隔,后跟返回类型.在这种情况下,x
将是类型string
.
Func<string, byte[]> BodyToBytes = x => {
ASCIIEncoding lASCIIEncoding = new ASCIIEncoding();
return lASCIIEncoding.GetBytes(x);
}
Run Code Online (Sandbox Code Playgroud)