Ternary Operator C#

Logical Operators

Logical Operators, Relational Operators की तरह ही bool Type की true या false Value Return करते हैं और हमेंशा bool Type की Value पर ही प्रक्रिया करते हैं। इसीलिए सामान्‍यत: इनका प्रयोग Relational Operators के साथ ही किया जाता है। C# में मूल रूप से Relational Operators की तरह ही कुल 6 Logical Operators होते हैं, जो कि निम्नानुसार हैं:

Operator Meaning
& AND
| OR
^ XOR (exclusive OR)
|| Short-circuit OR
&& Short-circuit AND
! NOT

NOT Operator को छोडकर अन्‍य सभी Logical Operators, Binary Operators होते हैं, इसलिए इसके LeftRight दोनों Sides में कोई न कोई Operand होना जरूरी होता है, जिस पर Operate करके ये Operator bool Type का true या false मान Return करता है।

जबकि NOT Operator को जिस Boolean Value के साथ Use करते हैं, ये Operator उस Value को Reverse कर देता है। यानी true को falsefalse को true के रूप में Return कर देता है।

इस Operator के Left व Right Side के Boolean मानों के आधार पर Perform होने वाले Operation को हम निम्नानुसार Program द्वारा आसानी से समझ सकते हैं:

File Name: LogicalOperators.cs
using System;

namespace CSharpFundamentals
{
    class LogicalOperators
    {
        private static void Main(string[] args)
        {
            Console.WriteLine("Logical & (AND) Operator");
            Console.WriteLine("true & true : {0}", true & true);
            Console.WriteLine("true & false : {0}", true & false);
            Console.WriteLine("false & true : {0}", false & true);
            Console.WriteLine("false & false : {0}\n", false & false);

            Console.WriteLine("Logical && (Short-Circuit AND) Operator");
            Console.WriteLine("true && true : {0}", true && true);
            Console.WriteLine("true && false : {0}", true && false);
            Console.WriteLine("false && true : {0}", false && true);
            Console.WriteLine("false && false : {0}\n", false && false);

            Console.WriteLine("Logical | (OR) Operator");
            Console.WriteLine("true | true : {0}", true | true);
            Console.WriteLine("true | false : {0}", true | false);
            Console.WriteLine("false | true : {0}", false | true);
            Console.WriteLine("false | false : {0}\n", false | false);

            Console.WriteLine("Logical || (Short-Circuit OR) Operator");
            Console.WriteLine("true || true : {0}", true || true);
            Console.WriteLine("true || false : {0}", true || false);
            Console.WriteLine("false || true : {0}", false || true);
            Console.WriteLine("false || false : {0}\n", false || false);

            Console.WriteLine("Logical ^ (XOR) Operator");
            Console.WriteLine("true ^ true : {0}", true ^ true);
            Console.WriteLine("true ^ false : {0}", true ^ false);
            Console.WriteLine("false ^ true : {0}", false ^ true);
            Console.WriteLine("false ^ false : {0}\n", false ^ false);

            Console.WriteLine("Logical ! (NOT) Operator");
            Console.WriteLine("!true : {0}", !true);
            Console.WriteLine("!false : {0}\n", !false);
        }
    }
}

// Output:

Logical & (AND) Operator

true & true : True
true & false : False
false & true : False
false & false : False

Logical && (Short-Circuit AND) Operator

true && true : True
true && false : False
false && true : False
false && false : False

Logical | (OR) Operator

true | true : True
true | false : True
false | true : True
false | false : False

Logical || (Short-Circuit OR) Operator

true || true : True
true || false : True
false || true : True
false || false : False

Logical ^ (XOR) Operator

true ^ true : False
true ^ false : True
false ^ true : True
false ^ false : False

Logical ! (NOT) Operator

!true : False
!false : True

इस Program के Output को देखकर हम आसानी से समझ सकते हैं कि कौनसा Logical Operator किस स्थिति में किस प्रकार का Boolean मान Return करता है। फिर भी जैसाकि उपरोक्त Program में Output में हम देख सकते हैं कि ANDShort-Circuit AND तथा ORShort-Circuit OR दोनों ही Operators समान Output Generate करते हैं। लेकिन फिर भी इन्हें C# में Included रखा गया है।

समान प्रकार का काम करने के बादजूद इन दोनों Operators को C# में इसलिए Included रखा गया है, क्योंकि Short-Circuit ANDOR Operators, Logical AND व OR Operators की तुलना में ज्यादा Efficient हैं।

क्योंकि जब हम Short-Circuit AND (&&) Operator को Use करते हैं और इस Operator के Left Side में False होता है, तो Compiler इस Operator के Right Side के दूसरे Operand को Check ही नहीं करता। क्योंकि AND Operator तभी True Return करता है, जबकि इसके दोनों ही Sides में True हों और जब पहला ही Operand False हो तो दूसरे Operand को Check करने की जरूरत ही नहीं रह जाती।

इसी तरह से जब हम Short-Circuit OR ( || ) Operator को Use करते हैं और इस Operator के Left Side में True होता है, तो Compiler इस Operator के Right Side के दूसरे Operand को Check ही नहीं करता। क्योंकि OR Operator तभी False Return करता है, जबकि इसके दोनों ही Sides में False हो और जब पहला ही Operand True हो तो दूसरे Operand को Check करने की जरूरत ही नहीं रह जाती।

Logical OR ( | ) व Logical AND ( & ) Operators का प्रयोग तब किया जाता है, जब हमें निश्चित रूप से इन Operators के Left व Right दोनों Sides के Boolean मानों को Test करना होता है।

यानी यदि हम Logical AND Operator का प्रयोग करें] और इस Operator के Left Side में false मान हो, तब भी ये Operator अपने Right Side के मान को जरूर Check करता है। इसी तरह से यदि हम Logical OR Operator का प्रयोग करें] और इस Operator के Left Side में true मान हो, तब भी ये Operator अपने Right Side के मान को जरूर Check करता है। Logical AND व Short-Circuit AND तथा Logical OR व Short-Circuit OR दोनों Operators Pair में यही मूल अन्तर है।

Assignment Operators

जब हमें प्रोग्राम में किसी Variable को किसी प्रकार की गणना से प्राप्त होने वाला मान Assign करना हो, या कोई Literal Assign करना होता है, जब हम Assignment Operators का प्रयोग  हैं। Assignment Operator मुख्‍यत: एक ही है, लेकिन इसे निम्नानुसार विभिन्न रूपों में प्रयोग कर सकते हैं:

Operator Declaration Example Example Explanation
= Assignment A  = 10 A = 10
+= Assigning Sum A += 10 A = A + 10
-= Assigning Difference A -= 10 A = A – 10
*= Assigning Product A *= 10 A = A *10
/= Assigning Dividend A /= 10 A = A / 10
%= Assigning Reminder A %= 10 A = A % 10

Conditional Operators / Ternary Operator C#

यह if . . . else Conditional Statement का Short Form है। इसका Syntax ? : रूप का होता है। यानी इसमें दो Statements होते हैं। यदि Condition True होती है, तो पहला Statement Execute होता है या पहले Variable का मान Output में प्राप्त होता है। जबकि यदि Condition True नहीं होती है, तो दूसरा Statement Execute होता है या दूसरे Variable का मान Output में प्राप्त होता है। इसे एक उदाहरण से समझे तो:

माना a=2, b=3, x=4

अब यदि हम चाहते हैं कि Data Input के समय y = x हो, तो a का मान z में Store हो जाए अन्‍यथा b का मान z में Store हो जाए,  तो इस जरूरत को हम निम्नानुसार Statements लिखकर पूरा कर सकते हैं:

   if ( x = = y )
      z = a;
   else	
      z = b;

जबकि इसी if … else Statement को Conditional Operator का प्रयोग करते हुए हम निम्नानुसार लिख सकते हैं:

Ternary Operator C# - Hindi

C# में विभिन्न Operators का एक प्राथमिकता क्रम भी होता है, जिसे Operator का Precedence कहते हैं। ये प्राथमिकता क्रम ही तय करता है कि यदि किसी एक ही Expression में एक से ज्यादा Operators को Use किया गया है, तो पहले कौनसा Operator Execute होकर Result Generate करेगा और बाद में कौनसा Operator Execute होगा। C# के Operator Precedence को हम निम्न सारणी द्वारा आसानी से समझ सकते हैं।

Operators Precedence - Hindi

C# in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C#.NET in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C#.NET in Hindi | Page:908 | Format: PDF

BUY NOW GET DEMO REVIEWS