"\ a"和Console.Beep()方法是否发出相同的蜂鸣声?

Son*_*nül 3 .net c# escaping beep

\a是一个escape sequence表示字符常量的铃声警报.关于MSDN的Console.Beep()方法说明:

通过控制台扬声器发出哔哔声.

我们来看看这个示例代码:

public static void Main(string[] args)
{
     Console.WriteLine("\a");
     Console.Beep();
}
Run Code Online (Sandbox Code Playgroud)

这段代码会发出2声嘟嘟声,它们听起来和我一样.现在我需要看到证据.

当我反编译该Console.Beep()方法时,它使用Win32Native.Beep来自kernel32.dll ;

public static void Beep(int frequency, int duration)
{
    Win32Native.Beep(frequency, duration);
}
Run Code Online (Sandbox Code Playgroud)

他们的频率和持续时间可能不同,我没有说这些东西,但他们的来源是相同的(Win32Native.Beep)?哪个来源\a用于铃声警报

ant*_*ijn 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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Audacity中的两首曲目(Console.Write('\a')上一曲,Console.Beep()下曲).

两声哔哔声

在我放大轨道的任何地方,正弦波彼此完全匹配,并且它们具有完全相同的持续时间,因此我必须得出结论,它们实际上是相同的(在Windows 7上).