C# 将VB.Net转换为C时出错#
我有一个VB.Net函数(来自其他项目),我需要将它转换成C# 将VB.Net转换为C时出错#,c#,encoding,C#,Encoding,我有一个VB.Net函数(来自其他项目),我需要将它转换成C 以下是我尝试过的: private string Convert(string Value) { return Encoding.Unicode.GetString(Enumerable.ToArray<byte>(Enumerable.Select<byte, byte>((IEnumerable<byte>)Encoding.Unicode.GetBytes(Value),
C
以下是我尝试过的:
private string Convert(string Value)
{
return Encoding.Unicode.GetString(Enumerable.ToArray<byte>(Enumerable.Select<byte, byte>((IEnumerable<byte>)Encoding.Unicode.GetBytes(Value),
(Func<byte, byte>)(item => ~item))));
}
私有字符串转换(字符串值)
{
返回Encoding.Unicode.GetString(Enumerable.ToArray(Enumerable.Select((IEnumerable))Encoding.Unicode.GetBytes(Value),
(Func)(项目=>~item));
}
我有两个错误:
- 无法将类型“int”隐式转换为“byte”。存在显式转换(是否缺少强制转换?)
- 无法将lambda表达式转换为委托类型“System.Func”,因为块中的某些返回类型不能隐式转换为委托返回类型
private string Convert(string value)
{
var invertedBytes = Encoding.Unicode.GetBytes(value).Select(b => (byte)~b).ToArray();
return Encoding.Unicode.GetString(invertedBytes);
}
OP在VB.NET中执行按位not操作,
~item
在C#中是等效的。你的代码无法编译。请验证。@ChannappaJagadish,是的,你是对的,所以我已经更新了我的代码,使其能够编译,谢谢!
private string Convert(string Value)
{
dynamic transformed = Encoding.Unicode.GetBytes(Value).Select(item => (byte)~item);
return Encoding.Unicode.GetString(transformed.ToArray());
}
private string Convert(string value)
{
var invertedBytes = Encoding.Unicode.GetBytes(value).Select(b => (byte)~b).ToArray();
return Encoding.Unicode.GetString(invertedBytes);
}