\a
是escape sequence
,表示字符常量上的铃声警报。来自 MSDN 的Console.Beep()
方法说明:
通过控制台扬声器发出哔哔声。
让我们考虑一下这个示例代码:
public static void Main(string[] args)
{
Console.WriteLine("\a");
Console.Beep();
}
此代码会发出2声嘟嘟声,它们听起来和我一样。现在我需要看到证据。
当我反编译Console.Beep()
方法时,它使用 kernel32.dll 中的Win32Native.Beep
;
public static void Beep(int frequency, int duration)
{
Win32Native.Beep(frequency, duration);
}
他们的频率和持续时间可能不同,我对这些内容没有任何说明,但他们的来源是相同的(Win32Native.Beep
)? \a
使用哪个来源进行铃声提醒?
答案 0 :(得分:11)
这是我从检查音频时可以收集到的(Windows 7 64位(是的,我必须重新启动到Windows,我就是那个专用:))。我使用Fraps录制了音频,所以它应该是可靠的。
这是我用来检查它们的代码:
using System;
using System.Threading;
namespace StackOverflow
{
class Program
{
private static void Main(string[] args)
{
Console.Write("\a");
Thread.Sleep(500);
Console.Beep();
}
}
}
这些是Audacity中的两首曲目(Console.Write('\a')
是上一曲,Console.Beep()
是下曲目。
在我放大轨道的任何地方,正弦波彼此完全匹配,并且它们具有完全相同的持续时间,因此我必须得出结论,它们实际上是相同的(在Windows 7上是)。