다음을 통해 공유


ConsoleKeyInfo.Equals 메서드

정의

개체나 지정된 ConsoleKeyInfo 개체가 현재 ConsoleKeyInfo 개체와 같은지 여부를 나타내는 값을 가져옵니다.

오버로드

Equals(ConsoleKeyInfo)

지정한 ConsoleKeyInfo 개체가 현재 ConsoleKeyInfo 개체와 같은지 여부를 나타내는 값을 가져옵니다.

Equals(Object)

지정한 개체가 현재 ConsoleKeyInfo 개체와 같은지 여부를 나타내는 값을 가져옵니다.

Equals(ConsoleKeyInfo)

지정한 ConsoleKeyInfo 개체가 현재 ConsoleKeyInfo 개체와 같은지 여부를 나타내는 값을 가져옵니다.

public:
 virtual bool Equals(ConsoleKeyInfo obj);
public:
 bool Equals(ConsoleKeyInfo obj);
public bool Equals (ConsoleKeyInfo obj);
override this.Equals : ConsoleKeyInfo -> bool
Public Function Equals (obj As ConsoleKeyInfo) As Boolean

매개 변수

obj
ConsoleKeyInfo

현재 ConsoleKeyInfo 개체와 비교할 개체입니다.

반환

Boolean

obj이 현재 ConsoleKeyInfo 개체와 같으면 true이고, 그렇지 않으면 false입니다.

구현

설명

ConsoleKeyInfo 개체는 해당하는 KeyCharKey개체와 Modifiers 속성이 같으면 같습니다.

Equals 개체로 변환 obj 할 필요가 없으므로 메서드가 메서드보다 ConsoleKeyInfo.Equals(Object) 약간 더 잘 수행됩니다.

적용 대상

Equals(Object)

지정한 개체가 현재 ConsoleKeyInfo 개체와 같은지 여부를 나타내는 값을 가져옵니다.

public:
 override bool Equals(System::Object ^ value);
public override bool Equals (object? value);
public override bool Equals (object value);
override this.Equals : obj -> bool
Public Overrides Function Equals (value As Object) As Boolean

매개 변수

value
Object

현재 ConsoleKeyInfo 개체와 비교할 개체입니다.

반환

Boolean

valueConsoleKeyInfo 개체이고 현재 ConsoleKeyInfo 개체와 같으면 true이고, 그러지 않으면 false입니다.

예제

다음 예제는 Equals 메서드.

using namespace System;
using namespace System::Text;

static String^ KeyCombination(ConsoleKeyInfo sourceCki);

void main()
{
   String^ k1 = "\nEnter a key ......... ";
   String^ k2 = "\nEnter another key ... ";
   String^ key1 = "";
   String^ key2 = "";
   String^ areKeysEqual = "The {0} and {1} keys are {2}equal.";
   String^ equalValue = "";
   String^ prompt = "Press the escape key (ESC) to quit, " + 
                    "or any other key to continue.";
   ConsoleKeyInfo cki1;
   ConsoleKeyInfo cki2;
   //
   // The Console.TreatControlCAsInput property prevents this example from
   // ending if you press CTL+C, however all other operating system keys and 
   // shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect. 
   //
    Console::TreatControlCAsInput = true;

   // Request that the user enter two key presses. A key press and any 
   // combination shift, CTRL, and ALT modifier keys is permitted.
   do 
   {
      Console::Write(k1);
      cki1 = Console::ReadKey(false);
      Console::Write(k2);
      cki2 = Console::ReadKey(false);
      Console::WriteLine();

      key1 = KeyCombination(cki1);
      key2 = KeyCombination(cki2);
      if (cki1.Equals(cki2))
         equalValue = "";
      else
         equalValue = "not ";
      
      Console::WriteLine(areKeysEqual, key1, key2, equalValue);

      Console::WriteLine(prompt);
      cki1 = Console::ReadKey(true);
   } while (cki1.Key != ConsoleKey::Escape);
// Note: This example requires the Escape (Esc) key.
}

// The KeyCombination() method creates a string that specifies what 
// key and what combination of shift, CTRL, and ALT modifier keys 
// were pressed simultaneously.

static String^ KeyCombination(ConsoleKeyInfo sourceCki)
{
   StringBuilder^ sb = gcnew StringBuilder();
   sb->Length = 0;
   String^ keyCombo;
   if (sourceCki.Modifiers != ConsoleModifiers())
   {
   if ((sourceCki.Modifiers & ConsoleModifiers::Alt) != ConsoleModifiers())
      sb->Append("ALT+");
   if ((sourceCki.Modifiers & ConsoleModifiers::Shift) != ConsoleModifiers())
      sb->Append("SHIFT+");
   if ((sourceCki.Modifiers & ConsoleModifiers::Control) != ConsoleModifiers())
      sb->Append("CTL+");
   }
   sb->Append(sourceCki.Key.ToString());
   keyCombo = sb->ToString();
   return keyCombo;
}
/*
This example produces results similar to the following output:

Enter a key ......... a
Enter another key ... a
The A and A keys are equal.
Press the escape key (ESC) to quit, or any other key to continue.

Enter a key ......... a
Enter another key ... A
The A and SHIFT+A keys are not equal.
Press the escape key (ESC) to quit, or any other key to continue.

Enter a key ......... S
Enter another key ...
The ALT+SHIFT+S and ALT+CTL+F keys are not equal.
Press the escape key (ESC) to quit, or any other key to continue.

Enter a key .........
Enter another key ...
The UpArrow and UpArrow keys are equal.
Press the escape key (ESC) to quit, or any other key to continue.

*/
// This example demonstrates the ConsoleKeyInfo.Equals() method.

using System;
using System.Text;

class Sample
{
    public static void Main()
    {
    string k1 = "\nEnter a key ......... ";
    string k2 = "\nEnter another key ... ";
    string key1 = "";
    string key2 = "";
    string areKeysEqual = "The {0} and {1} keys are {2}equal.";
    string equalValue = "";
    string prompt = "Press the escape key (ESC) to quit, " +
                    "or any other key to continue.";
    ConsoleKeyInfo cki1;
    ConsoleKeyInfo cki2;

//
// The Console.TreatControlCAsInput property prevents this example from
// ending if you press CTL+C, however all other operating system keys and
// shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect.
//
    Console.TreatControlCAsInput = true;

// Request that the user enter two key presses. A key press and any
// combination shift, CTRL, and ALT modifier keys is permitted.
    do
    {
        Console.Write(k1);
        cki1 = Console.ReadKey(false);
        Console.Write(k2);
        cki2 = Console.ReadKey(false);
        Console.WriteLine();
//
        key1 = KeyCombination(cki1);
        key2 = KeyCombination(cki2);
        if (cki1.Equals(cki2))
            equalValue = "";
        else
            equalValue = "not ";
        Console.WriteLine(areKeysEqual, key1, key2, equalValue);
//
        Console.WriteLine(prompt);
        cki1 = Console.ReadKey(true);
    } while (cki1.Key != ConsoleKey.Escape);
// Note: This example requires the Escape (Esc) key.
    }

// The KeyCombination() method creates a string that specifies what
// key and what combination of shift, CTRL, and ALT modifier keys
// were pressed simultaneously.

    protected static string KeyCombination(ConsoleKeyInfo sourceCki)
    {
    StringBuilder sb = new StringBuilder();
    sb.Length = 0;
    string keyCombo;
    if (sourceCki.Modifiers != 0)
        {
        if ((sourceCki.Modifiers & ConsoleModifiers.Alt) != 0)
            sb.Append("ALT+");
        if ((sourceCki.Modifiers & ConsoleModifiers.Shift) != 0)
            sb.Append("SHIFT+");
        if ((sourceCki.Modifiers & ConsoleModifiers.Control) != 0)
            sb.Append("CTL+");
        }
    sb.Append(sourceCki.Key.ToString());
    keyCombo = sb.ToString();
    return keyCombo;
    }
}

/*
This example produces results similar to the following output:

Enter a key ......... a
Enter another key ... a
The A and A keys are equal.
Press the escape key (ESC) to quit, or any other key to continue.

Enter a key ......... a
Enter another key ... A
The A and SHIFT+A keys are not equal.
Press the escape key (ESC) to quit, or any other key to continue.

Enter a key ......... S
Enter another key ...
The ALT+SHIFT+S and ALT+CTL+F keys are not equal.
Press the escape key (ESC) to quit, or any other key to continue.

Enter a key .........
Enter another key ...
The UpArrow and UpArrow keys are equal.
Press the escape key (ESC) to quit, or any other key to continue.

*/
// This example demonstrates the ConsoleKeyInfo.Equals() method.

open System
open System.Text

// The keyCombination function creates a string that specifies what
// key and what combination of shift, CTRL, and ALT modifier keys
// were pressed simultaneously.
let keyCombination (sourceCki: ConsoleKeyInfo) =
    let sb = StringBuilder()
    sb.Length <- 0
    if int sourceCki.Modifiers <> 0 then
        if int (sourceCki.Modifiers &&& ConsoleModifiers.Alt) <> 0 then
            sb.Append "ALT+" |> ignore
        if int (sourceCki.Modifiers &&& ConsoleModifiers.Shift) <> 0 then
            sb.Append "SHIFT+" |> ignore
        if int (sourceCki.Modifiers &&& ConsoleModifiers.Control) <> 0 then
            sb.Append "CTL+" |> ignore
    
    sourceCki.Key
    |> string
    |> sb.Append
    |> string

//
// The Console.TreatControlCAsInput property prevents this example from
// ending if you press CTL+C, however all other operating system keys and
// shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect.
//
Console.TreatControlCAsInput <- true

let mutable cki1 = Unchecked.defaultof<ConsoleKeyInfo>
let mutable cki2 = Unchecked.defaultof<ConsoleKeyInfo>

// Request that the user enter two key presses. A key press and any
// combination shift, CTRL, and ALT modifier keys is permitted.
while cki1.Key <> ConsoleKey.Escape do
    printf "\nEnter a key ......... "
    cki1 <- Console.ReadKey false
    printf "\nEnter another key ... "
    cki2 <- Console.ReadKey false
    printfn ""

    let key1 = keyCombination cki1
    let key2 = keyCombination cki2
    let equalValue =
        if cki1.Equals cki2 then ""
        else "not "

    printfn $"The {key1} and {key2} keys are {equalValue}equal."

    printfn "Press the escape key (ESC) to quit, or any other key to continue."
    cki1 <- Console.ReadKey true

// Note: This example requires the Escape (Esc) key.


// This example produces results similar to the following output:
//
// Enter a key ......... a
// Enter another key ... a
// The A and A keys are equal.
// Press the escape key (ESC) to quit, or any other key to continue.
//
// Enter a key ......... a
// Enter another key ... A
// The A and SHIFT+A keys are not equal.
// Press the escape key (ESC) to quit, or any other key to continue.
//
// Enter a key ......... S
// Enter another key ...
// The ALT+SHIFT+S and ALT+CTL+F keys are not equal.
// Press the escape key (ESC) to quit, or any other key to continue.
//
// Enter a key .........
// Enter another key ...
// The UpArrow and UpArrow keys are equal.
// Press the escape key (ESC) to quit, or any other key to continue.
' This example demonstrates the ConsoleKeyInfo.Equals() method.
Imports System.Text

Class Sample
    Public Shared Sub Main() 
        Dim k1 As String = vbCrLf & "Enter a key ......... "
        Dim k2 As String = vbCrLf & "Enter another key ... "
        Dim key1 As String = ""
        Dim key2 As String = ""
        Dim areKeysEqual As String = "The {0} and {1} keys are {2}equal."
        Dim equalValue As String = ""
        Dim prompt As String = "Press the escape key (ESC) to quit, " & _
                               "or any other key to continue."
        Dim cki1 As ConsoleKeyInfo
        Dim cki2 As ConsoleKeyInfo
        
        '
        ' The Console.TreatControlCAsInput property prevents this example from
        ' ending if you press CTL+C, however all other operating system keys and 
        ' shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect. 
        '
        Console.TreatControlCAsInput = True
        
        ' Request that the user enter two key presses. A key press and any 
        ' combination shift, CTRL, and ALT modifier keys is permitted.
        Do
            Console.Write(k1)
            cki1 = Console.ReadKey(False)
            Console.Write(k2)
            cki2 = Console.ReadKey(False)
            Console.WriteLine()
            '
            key1 = KeyCombination(cki1)
            key2 = KeyCombination(cki2)
            If cki1.Equals(cki2) Then
                equalValue = ""
            Else
                equalValue = "not "
            End If
            Console.WriteLine(areKeysEqual, key1, key2, equalValue)
            '
            Console.WriteLine(prompt)
            cki1 = Console.ReadKey(True)
        Loop While cki1.Key <> ConsoleKey.Escape
    
    End Sub
    ' Note: This example requires the Escape (Esc) key.
    
    ' The KeyCombination() method creates a string that specifies what 
    ' key and what combination of shift, CTRL, and ALT modifier keys 
    ' were pressed simultaneously.
    Protected Shared Function KeyCombination(ByVal sourceCki As ConsoleKeyInfo) As String 
        Dim sb As New StringBuilder()
        sb.Length = 0
        Dim keyCombo As String
        If sourceCki.Modifiers <> 0 Then
            If(sourceCki.Modifiers And ConsoleModifiers.Alt) <> 0 Then
                sb.Append("ALT+")
            End If
            If(sourceCki.Modifiers And ConsoleModifiers.Shift) <> 0 Then
                sb.Append("SHIFT+")
            End If
            If(sourceCki.Modifiers And ConsoleModifiers.Control) <> 0 Then
                sb.Append("CTL+")
            End If
        End If
        sb.Append(sourceCki.Key.ToString())
        keyCombo = sb.ToString()
        Return keyCombo
    
    End Function 'KeyCombination
End Class

'
'This example produces results similar to the following output:
'
'Enter a key ......... a
'Enter another key ... a
'The A and A keys are equal.
'Press the escape key (ESC) to quit, or any other key to continue.
'
'Enter a key ......... a
'Enter another key ... A
'The A and SHIFT+A keys are not equal.
'Press the escape key (ESC) to quit, or any other key to continue.
'
'Enter a key ......... S
'Enter another key ...
'The ALT+SHIFT+S and ALT+CTL+F keys are not equal.
'Press the escape key (ESC) to quit, or any other key to continue.
'
'Enter a key .........
'Enter another key ...
'The UpArrow and UpArrow keys are equal.
'Press the escape key (ESC) to quit, or any other key to continue.
'

설명

ConsoleKeyInfo 개체는 해당하는 KeyCharKey개체와 Modifiers 속성이 같으면 같습니다.

적용 대상