c# मैं यह शर्त कैसे बदल सकता हूँ कि मैं चाहता हूँ




asp.net (8)

मेरी दो शर्त है। यदि स्थिति 0 बराबर है तो यह Absent और यदि 1 बराबर है तो यह present । अब मैं अपनी स्थिति में तीसरा मूल्य जोड़ना चाहता हूं। यदि यह 3 बराबर है तो यह Unacceptable absent

यह दो मान वाली मेरी शर्तें हैं:

(status >= 1 ? "Present" : "Absent")

मैं स्थिति कैसे बदल सकता हूं?


आप "NA" के रूप में एक विफल स्थिति जोड़ सकते हैं और इसे निम्नानुसार कर सकते हैं:

status == 0 ? "Absent" : status == 1? "Present" : status == 3? "Unacceptable Absent" : "NA";

यदि आपको टर्नेरी ऑपरेटर के साथ रहना है, तो आप तीन मानों को पूरा करने के लिए कोड को संशोधित कर सकते हैं।

string tmp = (status == 0 ? "Absent" : (status == 1 ? "Present" : "NA"));

आप इस तरह से कुछ का उपयोग कर सकते हैं:

status == 0 ? "Absent" : status == 1 ? "Present" : "Unacceptable"

लेकिन इस कोड शैली अच्छा पठनीय नहीं है। शब्दकोश या स्विच / केस स्टेटमेंट आदि का उपयोग करने के लिए बेहतर है।


उसके जैसा:

status == 0 ? "Absent" : status == 1 ? "present" : status == 3 ? "Unacceptable Absent" : 1==1

मुझे आपकी मदद करने की उम्मीद है।


लुकअप शब्दकोश का उपयोग करें।

//Initialized once in your program
var lookup = new Dictionary<int,string>
{
    { 0, "Absent"},
    { 1, "Present"},
    { 3, "Unacceptably Absent" }
};

//Call this whenever you need to convert a status code to a string
var description = lookup[status];

status >= 1 ?(status >2?"third Value":"Present") : "Absent"

उसके जैसा


मैं इस तरह @Shubhams दृष्टिकोण के लिए और अधिक पठनीय सलाह देते हैं:

string foo(int status)
{
    if (status == 0)
        return ("Present");
    else if (status == 1)
        return ("Absent");
    else if (status == 2)
        return ("Somthing else");
    else
        return ("Outside");
}

नेस्टेड टर्नरी ऑपरेटरों का उपयोग संक्षिप्तता के लिए पठनीयता का त्याग करता है। मैं इसके बजाय विनम्र switch स्टेटमेंट का उपयोग करने की सलाह देता हूं:

string foo(int status)
{
    switch (status)
    {
        case 0:
            return "Present";
        case 1:
            return "Absent";
        case 3:
            return "Unacceptable absent";
        default:
            throw new ArgumentOutOfRangeException(nameof(status), $"What kind of person passes {status}?");
    }
}




asp.net