有这样的功能:
private static void EncodeString(ref string str)
{
using (RLE inst_rle = new RLE())
{
string str_encoded = inst_rle.Encode(ref str);
Console.WriteLine(
"\r\nBase string ({0} chars): {1}\r\nAfter RLE-encoding ({2} chars): {3}\r\nCompression percentage: %{4}",
str.Length, str, str_encoded.Length, str_encoded,
() => { (100 * (str.Length - str.encoded.Length) / str.Length); }
);
}
}
我记得这是 C# 中的一种 lambda 风格: () => { < action > ; }
但是遇到这样的错误:
- 无法将 lambda 表达式转换为类型“对象”,因为它
- 只有赋值、调用、递增、递减和新对象表达式可以用作语句
- 不能在匿名方法、lambda 表达式或查询表达式中使用 ref 或 out 参数“str”
- 不能在匿名方法、lambda 表达式或查询表达式中使用 ref 或 out 参数“str”
如何在我的应用程序(控制台应用程序)中使用 C# EXACLTY 中的 Lambda 而无需明确使用
Delegate / Func<T>,喜欢在() => { }
方式吗?