什么是'~';在C#中调试时是什么意思?
以下是我的方法:什么是'~';在C#中调试时是什么意思?,c#,debugging,tilde,C#,Debugging,Tilde,以下是我的方法: public static void send(byte[] packet) { Console.Write(DateTime.Now.ToString() + ": "); foreach (byte b in packet) { Console.Write(b.ToString("X2") + " "); } Console.WriteLine(); if (connected) { t
public static void send(byte[] packet)
{
Console.Write(DateTime.Now.ToString() + ": ");
foreach (byte b in packet)
{
Console.Write(b.ToString("X2") + " ");
}
Console.WriteLine();
if (connected)
{
try
{
connection.Socket.Send(packet);
}
catch (Exception)
{
throw new Exception("Can't send packet");
}
}
}
这是来电者
public void addPacket(PacketProcessed packet)
{
int messageEvent = (int)Event.Type.Normal;
int speed = 0;
foreach (MessageProcessed message in packet.messages)
{
if ((currentlyEvent & (int)Event.Type.Speed) == (int)Event.Type.Speed)
{
if (Math.Abs(message.xSpeed) >= this.speedLimit - this.speedLimit * 0.1)
{
messageEvent |= (int)Event.Type.Speed;
speed = Math.Max(speed, (int)Math.Abs(message.xSpeed));
}
}
else
{
if (Math.Abs(message.xSpeed) >= this.speedLimit)
{
messageEvent |= (int)Event.Type.Speed;
speed = Math.Max(speed, (int)Math.Abs(message.xSpeed));
}
}
}
this.currentlyEvent = messageEvent;
if (this.currentlyEvent != historyEvent)
{
byte[] bb = ProtocolBuilder.buildProtocal(0xE0 + location, currentlyEvent, (byte)speed);
TCPTalker.send(bb); // <--- This line call above (send) method.
}
historyEvent = currentlyEvent;
packetStorage.Add(packet);
}
我看到“~”出现在调试字符串出现之前。
有时输出窗口会显示~then~然后我的调试字符串看起来像~~4/10/2013 3:12:01 PM:7E 00
“~”是什么意思?它没有任何预定义的含义。我会检查您的其他代码,查看对
控制台的调用;完全猜测时,可能会检查任何终结器-可能它们有一些输出,例如:
class Foo {
~Foo() {
#if DEBUG
// show that I got collected; hey I know - let's write to the console...
// that won't confuse *anyone*
Console.Write("~");
#endif
}
}
而是全局搜索(ctrl+shift+f)对于~
应该找到它。你确定你没有在程序中的其他地方自己编写它吗?你能在一个简短但完整的程序中重现它吗?它肯定不包含对Console.WriteLine的任何其他调用。@JonConsole.WriteLine
而不是Console.WriteLine
,可能吧,因为它不是直线-terminated@MarcGravell:非常正确。谢谢你!我已经检查过了。但是什么也没找到。谢谢马克·格雷威尔!我已经做过了。但什么也找不到。@Pruk和for控制台。是否写入?另外:您正在使用哪些其他库(如果有)?有没有可能是他们中的一个?事情是这样的:.NET不会无缘无故地向stdout添加~
。它来自应用程序(您的代码或dll)中的某个地方,该应用程序选择性地执行此操作。很抱歉,我的项目没有其他库。我正在使用VC#2010 Express。希望这些信息能有所帮助。。
class Foo {
~Foo() {
#if DEBUG
// show that I got collected; hey I know - let's write to the console...
// that won't confuse *anyone*
Console.Write("~");
#endif
}
}