পার্লে (এবং অন্যান্য ভাষায়) একটি শর্তসাপেক্ষ টেরিনারি অপারেটর এর মত প্রকাশ করা যেতে পারে:
my $foo = $bar == $buz ? $cat : $dog;
ভিবি.এনইটি তে কি একই রকম অপারেটর রয়েছে?
পার্লে (এবং অন্যান্য ভাষায়) একটি শর্তসাপেক্ষ টেরিনারি অপারেটর এর মত প্রকাশ করা যেতে পারে:
my $foo = $bar == $buz ? $cat : $dog;
ভিবি.এনইটি তে কি একই রকম অপারেটর রয়েছে?
উত্তর:
সংস্করণ উপর নির্ভর করে। If
VB.NET 2008 সালে অপারেটর একটি তিন অপারেটর (সেইসাথে একটি নাল মিলন অপারেটর) হয়। এটি সবেমাত্র চালু হয়েছিল, ২০০৮ এর আগে এটি উপলভ্য ছিল না। এখানে আরও কিছু তথ্য: ভিজ্যুয়াল বেসিক যদি ঘোষণা হয়
উদাহরণ:
Dim foo as String = If(bar = buz, cat, dog)
[Edit]
২০০৮ এর আগে এটি ছিল IIf
যা If
উপরে বর্ণিত অপারেটরের সাথে প্রায় একই রকম কাজ করেছিল ।
উদাহরণ:
Dim foo as String = IIf(bar = buz, cat, dog)
Iif
সর্বদা টাইপের একটি বস্তু প্রদান করে Object
, যেখানে If(bool, obj, obj)
বিকল্পটি কঠোরভাবে প্রকারের সাথে টাইপ-চেকিংয়ের অনুমতি দেয়। ( Dim var As Integer = Iif(true, 1, 2)
বিকল্পটি কঠোরভাবে সংকলন করবেন না কারণ আপনি কেবল সহজেই লিখতে Dim var As Integer = Iif(true, new Object(), new Object())
পারেন। আপনি Dim var As Integer = If(true, 1, 2)
যদিও বিকল্পটি দিয়ে কঠোরভাবে লিখতে পারেন , কারণ এটি
iif সর্বদা ভিবিতে উপলব্ধ ছিল, এমনকি ভিবি 6 তেও।
Dim foo as String = iif(bar = buz, cat, dog)
এটি সত্যিকারের অপারেটর নয়, তবে মাইক্রোসফ্টের একটি ফাংশন name ভিজুয়ালবাসিক নেমস্পেস।
() যদি নিকটতম সমতুল্য হয় তবে আপনি যদি "বিকল্প স্ট্রাইক অফ" সেট করে থাকেন তবে অন্তর্নিহিত রূপান্তরগুলি সম্পর্কে সতর্ক থাকুন
উদাহরণস্বরূপ, যদি আপনার সাবধান না হয় তবে আপনি এর মতো কিছু চেষ্টা করার প্রলোভন পেয়ে যেতে পারেন:
Dim foo As Integer? = If( someTrueExpression, Nothing, 2)
"Foo" কে 0 এর মান দেবে!
আমি মনে করি '?' সি # তে অপারেটরের সমতুল্য সংকলন ব্যর্থ হবে
Dim foo As Integer? = If( someTrueExpression, New Integer?, 2)
।
Option Strict On
। কারণটি হ'ল Nothing
ভিবি.নেট সি-এর default(T)
চেয়ে সমান null
।
Integer?
এটা nullable মানে - দেখুন stackoverflow.com/questions/3628757/make-an-integer-null
CType(Nothing, DateTime?
)।