이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Boolean 구조체

 

게시 날짜: 2016년 11월

부울(true 또는 false) 값을 나타냅니다.

네임스페이스:   System
어셈블리:  mscorlib(mscorlib.dll에 있음)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Boolean : IComparable, IConvertible, IComparable<bool>, 
	IEquatable<bool>

이름설명
System_CAPS_pubmethodCompareTo(Boolean)

이 인스턴스와 지정된 Boolean 개체를 비교하고 서로의 관계를 나타내는 정수를 반환합니다.

System_CAPS_pubmethodCompareTo(Object)

이 인스턴스와 지정된 개체를 비교하고 서로의 관계를 나타내는 정수를 반환합니다.

System_CAPS_pubmethodEquals(Boolean)

이 인스턴스가 지정된 Boolean 개체와 같은지를 나타내는 값을 반환합니다.

System_CAPS_pubmethodEquals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.(ValueType.Equals(Object)을(를) 재정의함)

System_CAPS_pubmethodGetHashCode()

이 인스턴스의 해시 코드를 반환합니다.(ValueType.GetHashCode()을(를) 재정의함)

System_CAPS_pubmethodGetType()

현재 인스턴스의 Type을 가져옵니다.(Object에서 상속됨)

System_CAPS_pubmethodGetTypeCode()

Boolean 값 형식에 대한 형식 코드를 반환합니다.

System_CAPS_pubmethodSystem_CAPS_staticParse(String)

논리 값의 지정된 문자열 표현을 해당하는 Boolean 값으로 변환합니다.

System_CAPS_pubmethodToString()

이 인스턴스의 값을 해당하는 문자열 표현("True" 또는 "False")으로 변환합니다.(ValueType.ToString()을(를) 재정의함)

System_CAPS_pubmethodToString(IFormatProvider)

이 인스턴스의 값을 해당하는 문자열 표현("True" 또는 "False")으로 변환합니다.

System_CAPS_pubmethodSystem_CAPS_staticTryParse(String, Boolean)

논리 값의 지정된 문자열 표현을 해당하는 Boolean으로 변환하려고 시도합니다. 반환 값은 변환이 성공했는지 아니면 실패했는지를 나타냅니다.

이름설명
System_CAPS_pubfieldSystem_CAPS_staticFalseString

부울 값 false를 문자열로 나타냅니다. 이 필드는 읽기 전용입니다.

System_CAPS_pubfieldSystem_CAPS_staticTrueString

부울 값 true를 문자열로 나타냅니다. 이 필드는 읽기 전용입니다.

이름설명
System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToBoolean(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToBoolean를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToByte(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToByte를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToChar(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 변환은 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 throw됩니다.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDateTime(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 변환은 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 throw됩니다.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDecimal(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToDecimal를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDouble(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToDouble를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt16(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToInt16를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt32(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToInt32를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt64(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToInt64를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSByte(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToSByte를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSingle(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToSingle를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToType(Type, IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToType를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt16(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToUInt16를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt32(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToUInt32를 참조하세요.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt64(IFormatProvider)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 IConvertible.ToUInt64를 참조하세요.

A Boolean 인스턴스 두 값 중 하나를 가질 수 있습니다: true, 또는 false합니다.

Boolean 구조는 다음 작업을 지 원하는 메서드를 제공 합니다.

다음 섹션에서는 이러한 작업 및 기타 사용 현황 세부 정보를 설명합니다.

부울 값의 서식 지정
부울 값 사이의 변환
부울 값을 구문 분석
부울 값 비교
부울 이진 값으로 사용
부울 값으로 작업을 수행
부울 및 Interop

문자열 표현을 Boolean 에 대 한 "True"는는 true 값 또는 "False"에 대 한는 false 값입니다. 문자열 표현을 Boolean 읽기 전용으로 값이 정의 TrueStringFalseString 필드입니다.

사용 된 ToString 메서드를 부울 값을 문자열로 변환 합니다. 두 개의 부울 구조 포함 ToString 오버 로드: 매개 변수가 없는 ToString() 메서드 및 ToString(IFormatProvider) 서식 지정을 제어 하는 매개 변수를 포함 하는 메서드. 그러나이 매개 변수는 무시 됩니다 때문에 두 개의 오버 로드 동일한 문자열을 생성 합니다. ToString(IFormatProvider) 방법은 문화권 구분 서식 지정을 지원 하지 않습니다.

다음 예제를 사용한 형식 지정은 ToString 메서드. 이 예에서는 사용 하는 합성 서식 지정 기능을 하므로 ToString 메서드를 암시적으로 호출 됩니다.

using System;

public class Example
{
   public static void Main()
   {
      bool raining = false;
      bool busLate = true;

      Console.WriteLine("It is raining: {0}", raining);
      Console.WriteLine("The bus is late: {0}", busLate);
   }
}
// The example displays the following output:
//       It is raining: False
//       The bus is late: True

때문에 Boolean 구조에는 두 개의 값만 있을 수 있습니다, 사용자 지정 서식을 추가 하는 것이 쉽습니다. 간단한 사용자 지정 서식 지정을 위해 다른 문자열 리터럴 "True"와 "False"에 대 한 대체 됩니다와 같은 언어에서 지 원하는 모든 조건부 평가 기능을 사용할 수 있습니다는 조건부 연산자 C# 또는 경우 연산자 Visual Basic의 합니다. 다음 예제에서는이 방법을 사용 하 여 서식을 지정 하려면 Boolean 값 "Yes"로 하 고 "True" 및 "False" 대신 "No"입니다.

using System;

public class Example
{
   public static void Main()
   {
      bool raining = false;
      bool busLate = true;

      Console.WriteLine("It is raining: {0}", 
                        raining ? "Yes" : "No");
      Console.WriteLine("The bus is late: {0}", 
                        busLate ? "Yes" : "No" );
   }
}
// The example displays the following output:
//       It is raining: No
//       The bus is late: Yes

더 복잡 한 사용자 지정 서식 지정 작업을 위해 문화권 구분 서식 지정을 포함 하 여 호출할 수 있습니다는 String.Format(IFormatProvider, String, Object[]) 메서드를 제공 하 고는 ICustomFormatter 구현 합니다. 다음 예제에서는 구현 된 ICustomFormatterIFormatProvider 인터페이스 영어 (미국), 프랑스어 (프랑스) 및 러시아어 (러시아) 문화권에 대 한 문화권별 부울 문자열을 제공 하도록 합니다.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String[] cultureNames = { "", "en-US", "fr-FR", "ru-RU" };
      foreach (var cultureName in cultureNames) {
         bool value = true;
         CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
         BooleanFormatter formatter = new BooleanFormatter(culture);

         String result = String.Format(formatter, "Value for '{0}': {1}", culture.Name, value);
         Console.WriteLine(result);
      }
   }
}

public class BooleanFormatter : ICustomFormatter, IFormatProvider
{   
   private CultureInfo culture;

   public BooleanFormatter() : this(CultureInfo.CurrentCulture)
   { }

   public BooleanFormatter(CultureInfo culture)
   {
      this.culture = culture; 
   }

   public Object GetFormat(Type formatType)
   { 
      if (formatType == typeof(ICustomFormatter))
         return this;
      else
         return null;
   }

   public String Format(String fmt, Object arg, IFormatProvider formatProvider)
   { 
      // Exit if another format provider is used.
      if (! formatProvider.Equals(this)) return null;

      // Exit if the type to be formatted is not a Boolean
      if (! (arg is Boolean)) return null;

      bool value = (bool) arg;
      switch (culture.Name) {
         case "en-US":
            return value.ToString();
         case "fr-FR":
            if (value) 
               return "vrai";
            else
               return "faux";
         case "ru-RU":
            if (value)
               return "верно";
            else
               return "неверно";
         default:
            return value.ToString();  
      }
   }
}
// The example displays the following output:
//       Value for '': True
//       Value for 'en-US': True
//       Value for 'fr-FR': vrai
//       Value for 'ru-RU': верно

사용할 수 있습니다 리소스 파일 문화권별 부울 문자열을 정의할 수 있습니다.

Boolean 구현 구조는 IConvertible 인터페이스입니다. 결과적으로, 사용할 수 있습니다는 Convert 간의 변환을 수행 하는 클래스는 Boolean 값과 다른 기본 형식을.NET Framework에서 호출할 수는 Boolean 구조체의 명시적 구현입니다. 그러나 사이의 변환은 Boolean 해지고 다음과 같은 종류는 지원 되지 않으므로 해당 변환 메서드를 throw 한 InvalidCastException 예외:

정수 계열 또는 부동 소수점 숫자 부울 값으로 변환할 때 모든 0이 아닌 값을 변환 true 및 0 값을 false합니다. 다음 예제에서는 선택한 오버 로드를 호출 하 여이 Convert.ToBoolean 클래스입니다.

using System;

public class Example
{
   public static void Main()
   {
      Byte byteValue = 12;
      Console.WriteLine(Convert.ToBoolean(byteValue));
      Byte byteValue2 = 0;
      Console.WriteLine(Convert.ToBoolean(byteValue2));
      int intValue = -16345;
      Console.WriteLine(Convert.ToBoolean(intValue));
      long longValue = 945;
      Console.WriteLine(Convert.ToBoolean(longValue));
      SByte sbyteValue = -12;
      Console.WriteLine(Convert.ToBoolean(sbyteValue));
      double dblValue = 0;
      Console.WriteLine(Convert.ToBoolean(dblValue));
      float sngValue = .0001f;
      Console.WriteLine(Convert.ToBoolean(sngValue));
   }
}
// The example displays the following output:
//       True
//       False
//       True
//       True
//       True
//       False
//       True

부동 소수점 값에서 부울 값으로 변환할 때 변환 메서드는 0이 표시는 정확한 비교를 수행 합니다. 부동 소수점 값에 전체 자릿수를 무시할 경우 결과 예기치 않은 될 수 있습니다. 이 다음 예제를 확인할 수는 Double 해당 값은 0 이어야 하는 변수는 부울 값으로 변환 됩니다. 결과 위의 예제와 같이 true 0.2 추가 자릿수 손실을 초래할 반복 하기 때문에 있습니다.

변환 메서드는 숫자 값을 부울으로는 Convert 클래스 convert true 1 및 false 0으로 합니다. 그러나 Visual Basic 변환 함수 변환 true 어느 255 (에 변환에 대 한 Byte 값) 또는 (다른 모든 숫자 변환의)에 대 한-1입니다. 다음 예제에서는 변환 true 를 사용 하 여 숫자 값으로는 Convert 메서드, 및 Visual Basic 예제에서는 Visual Basic 언어의 자체 변환 연산자를 사용 하 여의 경우.

using System;

public class Example
{
   public static void Main()
   {
      bool flag = true;

      byte byteValue;   
      byteValue = Convert.ToByte(flag);
      Console.WriteLine("{0} -> {1}", flag, byteValue);         

      sbyte sbyteValue;
      sbyteValue = Convert.ToSByte(flag);
      Console.WriteLine("{0} -> {1}", flag, sbyteValue);         

      double dblValue;
      dblValue = Convert.ToDouble(flag);
      Console.WriteLine("{0} -> {1}", flag, dblValue);         

      int intValue;
      intValue = Convert.ToInt32(flag);
      Console.WriteLine("{0} -> {1}", flag, intValue);         
   }
}
// The example displays the following output:
//       True -> 1
//       True -> 1
//       True -> 1
//       True -> 1

로 변환을 Boolean 문자열 값, 참조에 부울 값 서식 지정 섹션. 문자열을 변환할 때에 대 한 Boolean 값, 참조는 부울 값을 구문 분석 섹션.

Boolean 두 정적 구문 분석 메서드를 포함 하는 구조 ParseTryParse, 문자열을 부울 값을 변환 하는 합니다. 부울 값의 문자열 표현을 해당 하는 대/소문자 구분의 값에 의해 정의 됩니다는 TrueStringFalseString 인 "True" 및 "False", 각각 필드입니다. 즉, 성공적으로 구문 분석 하는 유일한 문자열은 "True", "False", "true", "false" 또는 일부 소문자가 혼합 된 것과 같습니다. "0" 또는 "1"와 같은 숫자 문자열을 성공적으로 분석할 수 없습니다. 문자열 비교를 수행 하는 경우에 선행 또는 후행 공백 문자 고려 되지 않습니다.

다음 예제에서는 ParseTryParse 다양 한 문자열을 구문 분석 하는 메서드. Note 수 "True" 및 "False"의 해당 항목에 대/소문자 구분 성공적으로 구문 분석할 수 있습니다.

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { null, String.Empty, "True", "False", 
                          "true", "false", "    true    ", 
                           "TrUe", "fAlSe", "fa lse", "0",  
                          "1", "-1", "string" };
      // Parse strings using the Boolean.Parse method.                    
      foreach (var value in values) {
         try {
            bool flag = Boolean.Parse(value);
            Console.WriteLine("'{0}' --> {1}", value, flag);
         }
         catch (ArgumentException) {
            Console.WriteLine("Cannot parse a null string.");
         }   
         catch (FormatException) {
            Console.WriteLine("Cannot parse '{0}'.", value);
         }         
      }
      Console.WriteLine();
      // Parse strings using the Boolean.TryParse method.                    
      foreach (var value in values) {
         bool flag = false;
         if (Boolean.TryParse(value, out flag))
            Console.WriteLine("'{0}' --> {1}", value, flag);
         else
            Console.WriteLine("Unable to parse '{0}'", value);
      }                                     
   }
}
// The example displays the following output:
//       Cannot parse a null string.
//       Cannot parse ''.
//       'True' --> True
//       'False' --> False
//       'true' --> True
//       'false' --> False
//       '    true    ' --> True
//       'TrUe' --> True
//       'fAlSe' --> False
//       Cannot parse 'fa lse'.
//       Cannot parse '0'.
//       Cannot parse '1'.
//       Cannot parse '-1'.
//       Cannot parse 'string'.
//       
//       Unable to parse ''
//       Unable to parse ''
//       'True' --> True
//       'False' --> False
//       'true' --> True
//       'false' --> False
//       '    true    ' --> True
//       'TrUe' --> True
//       'fAlSe' --> False
//       Cannot parse 'fa lse'.
//       Unable to parse '0'
//       Unable to parse '1'
//       Unable to parse '-1'
//       Unable to parse 'string'

Visual Basic에서 프로그래밍 하는 경우 사용할 수 있습니다는 CBool 부울 값으로 숫자의 문자열 표현을 변환 하는 함수입니다. "0"으로 변환 됩니다 false, 0이 아닌 모든 값의 문자열 표현으로 변환 됩니다 true합니다. Visual Basic에서 프로그래밍 하는 하지 경우 부울으로 변환 하기 전에 숫자로 문자열에 숫자를 변환 해야 합니다. 다음 예는 정수의 배열을 부울 값으로 변환 하 여이 보여줍니다.

using System;

public class Example
{
   public static void Main()
   {
      String[] values = { "09", "12.6", "0", "-13 " };
      foreach (var value in values) {
         bool success, result;
         int number; 
         success = Int32.TryParse(value, out number);
         if (success) {
            // The method throws no exceptions.
            result = Convert.ToBoolean(number);
            Console.WriteLine("Converted '{0}' to {1}", value, result);
         }
         else {
            Console.WriteLine("Unable to convert '{0}'", value); 
         }         
      }
   }
}
// The example displays the following output:
//       Converted '09' to True
//       Unable to convert '12.6'
//       Converted '0' to False
//       Converted '-13 ' to True

부울 값은 때문에 true 또는 false, 이유는 거의 없습니다 명시적으로 호출 하는 CompareTo 인지 여부를 나타내는 인스턴스 보다 큼, 보다 작거나, 메서드 또는 등호를 지정 된 값입니다. 일반적으로 두 개의 부울 변수를 비교 하려면 호출는 Equals 메서드 하거나 해당 언어의 같음 연산자를 사용 합니다.

그러나 하려는 경우 부울 리터럴 값 부울 변수 비교 true 또는 false, 필요 없는 명시적 비교를 수행 하는 부울 값을 평가의 결과 부울 값이 때문에 있습니다. 예를 들어 식

if (booleanValue) {

를 갖는

using System;

public class Example
{
   public static void Main()
   {
      bool[] hasServiceCharges = { true, false };
      Decimal subtotal = 120.62m;
      Decimal shippingCharge = 2.50m;
      Decimal serviceCharge = 5.00m;

      foreach (var hasServiceCharge in hasServiceCharges) {
         Decimal total = subtotal + shippingCharge + 
                                (hasServiceCharge ? serviceCharge : 0);
         Console.WriteLine("hasServiceCharge = {1}: The total is {0:C2}.", 
                           total, hasServiceCharge);                       
      }
   }
}
// The example displays output like the following:
//       hasServiceCharge = True: The total is $128.12.
//       hasServiceCharge = False: The total is $123.12.

동일 하지만 두 번째 용량이 줄어듭니다. 그러나 두 가지 방법을 모두 비슷한 성능을 제공 합니다.

다음 C# 예제와 같이 1 바이트의 메모리를 차지 하는 부울 값을 합니다. 이 예제에서는로 컴파일해야는 /unsafe 전환 합니다.

using System;

public struct BoolStruct
{
   public bool flag1;
   public bool flag2;
   public bool flag3;
   public bool flag4;
   public bool flag5;
}

public class Example
{
   public static void Main()
   {
      unsafe {
         BoolStruct b = new BoolStruct();
         bool* addr = (bool*) &b;
         Console.WriteLine("Size of BoolStruct: {0}", sizeof(BoolStruct));
         Console.WriteLine("Field offsets:");
         Console.WriteLine("   flag1: {0}", (bool*) &b.flag1 - addr);
         Console.WriteLine("   flag1: {0}", (bool*) &b.flag2 - addr);
         Console.WriteLine("   flag1: {0}", (bool*) &b.flag3 - addr);
         Console.WriteLine("   flag1: {0}", (bool*) &b.flag4 - addr);
         Console.WriteLine("   flag1: {0}", (bool*) &b.flag5 - addr);
      }
   }
}
// The example displays the following output:
//       Size of BoolStruct: 5
//       Field offsets:
//          flag1: 0
//          flag1: 1
//          flag1: 2
//          flag1: 3
//          flag1: 4

바이트의 낮은 순서 비트는 해당 값을 나타내는 데 사용 됩니다. 값이 1 true; 값을 나타내는 0 false합니다.

System_CAPS_warning경고

사용할 수는 System.Collections.Specialized.BitVector32 구조 부울 값의 집합을 사용 합니다.

호출 하 여 부울 값을 이진 표현으로 변환할 수 있습니다는 BitConverter.GetBytes(Boolean) 메서드. 메서드는 단일 요소가 있는 바이트 배열을 반환 합니다. 부울 값을 이진 표현에서 복원 하려면 호출할 수 있습니다는 BitConverter.ToBoolean(Byte[], Int32) 메서드.

다음 예제에서는 BitConverter.GetBytes 이진 표현 및 표시 값 및 호출의 개별 비트에 부울 값을 변환 하는 메서드는 BitConverter.ToBoolean 값의 이진 표현에서 복원 하는 메서드.

using System;

public class Example
{
   public static void Main()
   {
      bool[] flags = { true, false };
      foreach (var flag in flags) {
         // Get binary representation of flag.
         Byte value = BitConverter.GetBytes(flag)[0];
         Console.WriteLine("Original value: {0}", flag);
         Console.WriteLine("Binary value:   {0} ({1})", value, 
                           GetBinaryString(value));
         // Restore the flag from its binary representation.
         bool newFlag = BitConverter.ToBoolean( new Byte[] { value }, 0);
         Console.WriteLine("Restored value: {0}\n", flag);
      }
   }

   private static string GetBinaryString(Byte value)
   {
      String retVal = Convert.ToString(value, 2);
      return new String('0', 8 - retVal.Length) + retVal;
   }
}
// The example displays the following output:
//       Original value: True
//       Binary value:   1 (00000001)
//       Restored value: True
//       
//       Original value: False
//       Binary value:   0 (00000000)
//       Restored value: False

이 섹션 방법을 부울 값을 보여 줍니다. 앱에서 사용 됩니다. 첫 번째 섹션에서는 플래그로 용도 설명합니다. 두 번째 산술 연산에 대 한 용도를 보여 줍니다.

부울 변수 조건의 유무 신호를 보내 플래그로, 가장 일반적으로 사용 됩니다. 예를 들어는 String.Compare(String, String, Boolean) 메서드, 마지막 매개 변수 ignoreCase, 두 문자열의 비교는 대/소문자 구분 여부를 나타내는 플래그 (ignoreCasetrue) 대/소문자 구분 또는 (ignoreCasefalse). 그런 다음 조건문에서 플래그의 값을 계산할 수 있습니다.

다음 예제에서는 간단한 콘솔 응용 프로그램을 사용 하 여 플래그로 부울 변수 사용법을 보여 줍니다. 응용 프로그램에서는 지정된 된 파일에 리디렉션이 출력을 사용할 수 있는 명령줄 매개 변수 (의 /f 전환), 및 출력을 콘솔 및 지정된 된 파일에 보낼 수 있도록 하는 (의 /b 전환). 명명 된 플래그를 정의 하는 응용 프로그램 isRedirected 파일을 전송할 출력은 및 플래그 라는 여부를 나타내는 데 isBoth 출력을 콘솔에 보내야 한다고 나타냅니다.

using System;
using System.IO;
using System.Threading;

public class Example
{
   public static void Main()
   {
      // Initialize flag variables.
      bool isRedirected = false;
      bool isBoth = false; 
      String fileName = "";
      StreamWriter sw = null;

      // Get any command line arguments.
      String[] args = Environment.GetCommandLineArgs();
      // Handle any arguments.
      if (args.Length > 1) { 
         for (int ctr = 1; ctr < args.Length; ctr++) {
            String arg = args[ctr];
            if (arg.StartsWith("/") || arg.StartsWith("-")) {
               switch (arg.Substring(1).ToLower())
               {
                  case "f":
                     isRedirected = true;
                     if (args.Length < ctr + 2) {
                        ShowSyntax("The /f switch must be followed by a filename.");
                        return;
                     }
                     fileName = args[ctr + 1];
                     ctr++;
                     break;
                  case "b":
                     isBoth = true;
                     break;
                  default:
                     ShowSyntax(String.Format("The {0} switch is not supported", 
                                              args[ctr]));
                     return;
               }
            }   
         }
      }

      // If isBoth is True, isRedirected must be True.
      if (isBoth &&  ! isRedirected) { 
         ShowSyntax("The /f switch must be used if /b is used.");
         return;
      }

      // Handle output.
      if (isRedirected) {
         sw = new StreamWriter(fileName); 
         if (!isBoth)
            Console.SetOut(sw); 
      }     
      String msg = String.Format("Application began at {0}", DateTime.Now);
      Console.WriteLine(msg);
      if (isBoth) sw.WriteLine(msg);
      Thread.Sleep(5000);
      msg = String.Format("Application ended normally at {0}", DateTime.Now);
      Console.WriteLine(msg);
      if (isBoth) sw.WriteLine(msg);
      if (isRedirected) sw.Close();
   }

   private static void ShowSyntax(String errMsg)
   {
      Console.WriteLine(errMsg);
      Console.WriteLine("\nSyntax: Example [[/f <filename> [/b]]\n");
   }
}

부울 값은 때때로 수학적 계산을 트리거하는 조건의 존재 여부를 나타내는 데 사용 됩니다. 예를 들어 한 hasShippingCharge 변수 운송 요금 청구 금액에 추가할 것인지를 지정 하는 플래그도 사용할 수 있습니다.

때문에 포함 된 작업을 false 값에 영향을 주지 않습니다 작업의 결과에 필요 없는 부울 수학 연산에서 사용 하는 정수 값으로 변환 하 합니다. 대신, 조건부 논리를 사용할 수 있습니다.

다음 예제에서는 부분합, 운송 요금 및 경우 선택적 서비스 요금으로 구성 하는 금액을 계산 합니다. hasServiceCharge 변수 서비스 요금 적용 되는지 여부를 결정 합니다. 변환 하는 대신 hasServiceCharge 를 숫자 값을 서비스 요금에 따라 곱한 예제를 사용 하 여 조건부 논리 적용 가능한 경우 서비스 요금이 청구 금액을 추가 합니다.

using System;

public class Example
{
   public static void Main()
   {
      bool[] hasServiceCharges = { true, false };
      Decimal subtotal = 120.62m;
      Decimal shippingCharge = 2.50m;
      Decimal serviceCharge = 5.00m;

      foreach (var hasServiceCharge in hasServiceCharges) {
         Decimal total = subtotal + shippingCharge + 
                                (hasServiceCharge ? serviceCharge : 0);
         Console.WriteLine("hasServiceCharge = {1}: The total is {0:C2}.", 
                           total, hasServiceCharge);                       
      }
   }
}
// The example displays output like the following:
//       hasServiceCharge = True: The total is $128.12.
//       hasServiceCharge = False: The total is $123.12.

일반적으로 간단 하 게는 COM에 대 한 기본 데이터 형식을 마샬링하는 Boolean 데이터 형식은 예외입니다. 적용할 수는 MarshalAsAttribute 특성을 마샬링하는 Boolean 다음 표현 중 어느 것에 형식:

열거형 형식

관리 되지 않는 형식

UnmanagedType.Bool

여기서 0이 아닌 모든 값은 4 바이트 정수 값, true 0 나타냅니다 false합니다. 기본 형식은 Boolean 는 구조, 필드는 Boolean 플랫폼에서 매개 변수는 호출을 호출 합니다.

UnmanagedType.U1

여기서는 1은 1 바이트 정수 값, true 0 나타냅니다 false합니다.

UnmanagedType.VariantBool

여기서은-1, 2 바이트 정수 값 true 0 나타냅니다 false합니다. 기본 형식은 Boolean COM interop 호출에 매개 변수입니다.

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
1.1 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능

이 유형의 모든 멤버는 스레드로부터 안전 합니다. 멤버 인스턴스 상태를 수정 하려면 표시 되는 실제로 새 값으로 초기화 하는 새 인스턴스를 반환 합니다. 으로 다른 종류와이 형식의 인스턴스를 포함 하는 공유 변수를 읽고 쓰는 보호 해야 스레드로부터 안전을 보장 하려면 잠금에 의해.

맨 위로 이동
표시: