如何在 C# 中使用 .ConvertToString() 方法分配变量以解析消息?
How to assign a variable with .ConvertToString() method in C# to parse the message?
我想了解如何为新转换的字符串分配名称,然后根据
解析该字符串
string[] separatingStrings = { ",", "<<", ">>" };
string[] messages = message.Split(separatingStrings);
Console.WriteLine($"{messages.Length} substrings in text:");
下面包含转换为字符串的var message
。
字符串的名称是什么,以便我可以解析它并将其输出到 unity debug.log
?
private void ReceiveMessageLoop()
{
while (true)
{
var message = new NetMQMessage();
if (!_socket.TryReceiveMultipartMessage(MessageCheckRate, ref message, 2)) continue;
_messageSubject.OnNext(message);
Console.WriteLine($"0:{message[0].ConvertToString()} 1:{message[1].ConvertToString()}");
//Console.WriteLine(message);
}
}
您不能在字符串插值表达式中声明变量。
Console.WriteLine($"{string bar = "hello"}"); // This gives error CS1525: Invalid expression term 'string'
因此,改为在字符串插值之外声明它,您可以在插值表达式中使用赋值表达式对其进行赋值。
string bar;
Console.WriteLine($"{bar = "hello"}"); // This is OK
Console.WriteLine(bar);
你的具体例子:
string msg0, msg1;
Console.WriteLine($"0:{msg0 = message[0].ConvertToString()} 1:{msg1 = message[1].ConvertToString()}");
Console.WriteLine(msg0);
Console.WriteLine(msg1);
额外提示:但是,您可以在插值表达式中使用 out
变量声明。范围与线相同(不是插值表达式的局部)。例如:
class Program
{
static string Test(out string x, string y) {
return x = y;
}
static void Main(string[] args)
{
Console.WriteLine($"{Test(out string bar, "Hello")}");
Console.WriteLine(bar);
}
}
我想了解如何为新转换的字符串分配名称,然后根据
解析该字符串string[] separatingStrings = { ",", "<<", ">>" };
string[] messages = message.Split(separatingStrings);
Console.WriteLine($"{messages.Length} substrings in text:");
下面包含转换为字符串的var message
。
字符串的名称是什么,以便我可以解析它并将其输出到 unity debug.log
?
private void ReceiveMessageLoop()
{
while (true)
{
var message = new NetMQMessage();
if (!_socket.TryReceiveMultipartMessage(MessageCheckRate, ref message, 2)) continue;
_messageSubject.OnNext(message);
Console.WriteLine($"0:{message[0].ConvertToString()} 1:{message[1].ConvertToString()}");
//Console.WriteLine(message);
}
}
您不能在字符串插值表达式中声明变量。
Console.WriteLine($"{string bar = "hello"}"); // This gives error CS1525: Invalid expression term 'string'
因此,改为在字符串插值之外声明它,您可以在插值表达式中使用赋值表达式对其进行赋值。
string bar;
Console.WriteLine($"{bar = "hello"}"); // This is OK
Console.WriteLine(bar);
你的具体例子:
string msg0, msg1;
Console.WriteLine($"0:{msg0 = message[0].ConvertToString()} 1:{msg1 = message[1].ConvertToString()}");
Console.WriteLine(msg0);
Console.WriteLine(msg1);
额外提示:但是,您可以在插值表达式中使用 out
变量声明。范围与线相同(不是插值表达式的局部)。例如:
class Program
{
static string Test(out string x, string y) {
return x = y;
}
static void Main(string[] args)
{
Console.WriteLine($"{Test(out string bar, "Hello")}");
Console.WriteLine(bar);
}
}