5

\a文字定数に関するベルアラートescape sequenceを表すです。MSDNからのメソッドの説明についてConsole.Beep()

コンソールスピーカーからビープ音を鳴らします。

このサンプルコードを考えてみましょう。

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

このコードはビープ音を2回鳴らしますが、私には同じように聞こえます。今、私は証拠を見る必要があります。

Console.Beep()メソッドを逆コンパイルすると、 kernel32.dllWin32Native.Beepから使用されます。

public static void Beep(int frequency, int duration)
{
    Win32Native.Beep(frequency, duration);
}

それらの頻度と期間は異なる可能性があります、私はこれらのものについて何も言いませんが、それらのソースは同じです(Win32Native.Beep)?ベルアラートにはどのソースを\a使用しますか?

4

1 に答える 1

14

これは、オーディオの調査から収集できる限りです(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の2つのトラックです(Console.Write('\a')上のトラックConsole.Beep()、下のトラックです)。

ビープ音が2回鳴る

トラックを拡大したどの時点でも、正弦波は互いに正確に一致し、持続時間もまったく同じであったため、実際には同じであると結論付ける必要があります(Windows 7の場合)。

于 2013-02-10T15:01:55.053 に答える