سؤال

int five = 5;
  • عندما يكون المتغير خمسة يساوي 5، اكتب صحيحا
  • عندما يكون المتغير خمسة لا يساوي 5، اكتب خطأ

كيف يمكنني كتابة بيان لهذا في ASP.NET باستخدام C #؟

هل كانت مفيدة؟

المحلول

int five = 5;
string answer = five == 5 ? "true" : "false";

أرى أنك تريد استخدام هذا لكتابة القيم في ASP.NET، answer ستحمل السلسلة القيمة المطلوبة، واستخدام ذلك كما تريد.

نصائح أخرى

يعمل المشغل الفحني في كل لغة تقريبا كصنارة مضمنة إذا كان العبارة:

Console.WriteLine((five == 5) ? 'true' : 'false');

(يجب أن لا تحتاج بدقة إلى التجديف الداخلي، لكنني أحب أن أدرجها من أجل الوضوح.)

إذا كان المنطقي يقيم إلى True، فإن التعبير بأكمله يساوي القيمة بين ? و :. وبعد إذا كان المنطقي يقيم إلى FALSE، فإن التعبير يساوي القيمة بعد :.

لا أعتقد أنه يمكنك تشمل خطوط التعليمات البرمجية في منتصف المشغل. من المفترض ببساطة أن تكون تعبيرات تحل محل المشغل بأكمله "العبارة" بمجرد تقييم الحالة.

أنا رجل جافا ولا أعرف حقا ج #؛ ربما الأمر مختلف. ولكن ربما لا.

يمكنك أن تبقيها بسيطة حقا. مقارنة خمسة إلى 5 نتائج في منطقية، وبالتالي فإن ما يلي ممكن أيضا:

int five = 5;
Console.WriteLine((five == 5).ToString());

ال بوف اكتب إلى سلسلة() تم تصميم الطريقة بالفعل لإرجاع "صحيح" أو "خطأ"، وإذا كانت هناك حاجة بديل صغير، فهذا بسيط للغاية:

int five = 5;
Console.WriteLine((five == 5).ToString().ToLower());

إذا لم تكن في حاجة إليها منخفضا، فيمكنك القضاء تماما على Tostring أيضا:

int five = 5;
Console.WriteLine(five == 5);

في ASP.NET، إعلان (أي، حيث يذهب HTML):

<p>Is this five? <%= yourVariable == 5 ? "true" : "false"; %></p>

أو بدلا من ذلك، في الكود الخلف (أي، حيث رمز وكود C # الخاص بك):

someTextBox.Text = yourVariable == 5 ? "true" : "false";
Response.Write(five == 5 ? "True" : "False");

على الرغم من ذلك، على سبيل المثال، لن أستخدم المشغل الثلاثي على الإطلاق:

Response.Write(five == 5);

فقط لتكون آمنة، يجب أن تضع تعبيراتك القصيرة في Parens ()، لأن المشغل القصير؟: لديه الأسبقية الدقيقة التي يمكن أن تعضك إذا كنت لا تشاهد.

string answer = ( (five==5) ? ("true") : ("false") );

ربما لا يكون ذلك مهما مع هذا المثال، ولكن إذا كان Ternary جزءا من تعبير معقد، فقد تجعل قواعد الأسبقية تفسر التحويل البرمجي التعبير بشكل مختلف عن ما تقصده.

five==5?console.writeline('true'):console.writeline('false')

إنه يعمل مثل هذا:

<if-expression> ? <code-when-if-expression-evaluates-true> : <code-when-if-expression-evaluates-false>

تعديل:

ما كنت قد كنت تشينكي:

<%=five==5?'true':'false'%>

اختلاف آخر:

string message = XmlConvert.ToString(5 == five);
Console.Write(message);

أبسط شيء هو Console.Writeline ((خمس == 5).

من @ تعليق @ جونك استخدام:

int five = 5;
string answer = five == 5 ? bool.TrueString : bool.FalseString;

يمثل القيمة المنطقية True / false كسلسلة. هذا الحقل للقراءة فقط.https://msdn.microsoft.com/en-us/library/system.boolean.truestring(v=vs.110).aspx.

باستخدام بيان المشغل Ternary في C # مع eval. (في صفحة ASPX)

<span><%# Eval("productname").ToString().Length<=0 ? "<label style=\"color: red;\">Notes<span></span></label>" : "<label style=\"color: blue;\">Notes<span></span></label>"%></span>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top