দয়া করে সি # তে কীওয়ার্ড is
এবং as
কীওয়ার্ডের মধ্যে পার্থক্য রয়েছে তা বলুন
দয়া করে সি # তে কীওয়ার্ড is
এবং as
কীওয়ার্ডের মধ্যে পার্থক্য রয়েছে তা বলুন
উত্তর:
is
অপারেটর চেক একটি বস্তু একটি নির্দিষ্ট ধরনের কাস্ট করা যাবে যদি।
উদাহরণ:
if (someObject is StringBuilder) ...
as
অপারেটর প্রচেষ্টা একটি নির্দিষ্ট ধরনের একটি বস্তু কাস্ট করার জন্য এবং আয় নাল তা করতে ব্যর্থ হলে।
উদাহরণ:
StringBuilder b = someObject as StringBuilder;
if (b != null) ...
সম্পর্কিত:
ঢালাই অপারেটর প্রচেষ্টা একটি নির্দিষ্ট ধরনের একটি বস্তু নিক্ষেপ, এবং একটি ব্যাতিক্রম ছোঁড়ার তা করতে ব্যর্থ হলে হয়।
উদাহরণ:
StringBuilder b = (StringBuilder)someObject.
is
কোনও বস্তুকে নির্দিষ্ট ধরণের কাস্ট করা যেতে পারে কিনা তা পরীক্ষা করে না। একটি পূর্ণসংখ্যা লম্বা জরিমানা করে তবে 10 is long
এটি মিথ্যা।
(long)some_integer
কি ব্যর্থ হবে? আমি নিশ্চিত যে আমরা দুজনেই জানি এটি চালানো ছাড়াও সত্য নয় তাই দয়া করে আপনার অর্থটি কী তা ব্যাখ্যা করুন।
is
: " লক্ষ্য করুন নেই । অপারেটর শুধুমাত্র রেফারেন্সের ধর্মান্তর, বক্সিং ধর্মান্তর এবং আনবক্সিং ধর্মান্তর বিবেচনায় এমন ব্যবহারকারী-সংজ্ঞায়িত ধর্মান্তর, বিবেচনা করা হয় না অন্যান্য ধর্মান্তর। " (Msdn.microsoft.com/en-us/library/scekt9xw .aspx)। আমাদের সম্পর্কেas
: " লক্ষ্য করুন যেমন ।। অপারেটর সঞ্চালিত শুধুমাত্র রেফারেন্সের ধর্মান্তর, nullable ধর্মান্তর এবং বক্সিং ধর্মান্তর অপারেটর যেমন ব্যবহারকারী-সংজ্ঞায়িত ধর্মান্তর, যা পরিবর্তে ঢালাই এক্সপ্রেশন ব্যবহার করে সম্পাদনা করা উচিত হিসাবে অন্যান্য ধর্মান্তর, সঞ্চালন করা সম্ভব নয় যেমন " ( MSDN .microsoft.com / en-us / গ্রন্থাগার / cscsdfbt.aspx )
আইএস এবং এর মধ্যে পার্থক্যটি হ'ল ..
IS - ইস অপারেটর একটি প্রদত্ত প্রকারের সাথে কোনও সামগ্রীর সামঞ্জস্যতা পরীক্ষা করতে ব্যবহৃত হয় এবং এটি ফলাফলটি বুলিয়ান (সত্য বা মিথ্যা) হিসাবে প্রদান করে।
আঃ - যেমন অপারেটর কোনও প্রদত্ত প্রকার বা একটি শ্রেণিতে অবজেক্ট কাস্টিংয়ের জন্য ব্যবহৃত হয়।
যাত্রা।
Student s = obj as Student;
সমান:
Student s = obj is Student ? (Student)obj : (Student)null;
is
প্রকাশ করা যেতে পারে as
এবং সাথে প্রকাশ করা as
যেতে পারে is
। কীওয়ার্ড is
দিয়ে কীভাবে তৈরি করবেন তা এখানে Here : সমতূল্য এই বিষয়ে আরও এখানেas
Bool b = obj is Student;
Bool b = (obj as Student) != null;
উভয় is
এবংas
কীওয়ার্ড সি # তে টাইপ কাস্টিংয়ের জন্য ব্যবহৃত হয়।
আপনি উভয় কীওয়ার্ডের ব্যবহারের আইএল কোডটি একবার দেখে নিলে আপনি সহজেই পার্থক্যটি পেয়ে যাবেন।
সি # কোড:
BaseClass baseclassInstance = new DerivedClass();
DerivedClass derivedclassInstance;
if (baseclassInstance is DerivedClass)
{
derivedclassInstance = (DerivedClass)baseclassInstance;
// do something on derivedclassInstance
}
derivedclassInstance = baseclassInstance as DerivedClass;
if (derivedclassInstance != null)
{
// do something on derivedclassInstance
}
আইএল কোড (উপরের সি # কোডের জন্য সংযুক্ত চিত্রটিতে রয়েছে):
জন্য আইএল কোড is
শব্দ ব্যবহার আইএল নির্দেশাবলী উভয় রয়েছে isinsta
এবং castclass
।
তবে as
কীওয়ার্ড ব্যবহারের জন্য আইএল কোডটি কেবলমাত্র isinsta
।
উপরে বর্ণিত ব্যবহারে, দুটি টাইপকাস্ট ঘটবে যেখানে is
কীওয়ার্ড ব্যবহৃত হয় এবং কেবলমাত্র একটি টাইপকাস্ট যেখানে as
কীওয়ার্ড ব্যবহৃত হয়।
দ্রষ্টব্য: আপনি যদি is
কিছু শর্ত পরীক্ষা করতে কীওয়ার্ড ব্যবহার করে থাকেন এবং টাইপকাস্টের ফলাফলটিতে কোনও আগ্রহ না রাখেন তবে কেবলমাত্র একটি টাইপকাস্ট থাকবে, যেমন
if (baseclassInstance is DerivedClass)
{
// do something based on the condition check.
}
is
এবং as
কীওয়ার্ডগুলি প্রয়োজনীয়তার ভিত্তিতে ব্যবহৃত হবে।
মূলশব্দটি এটির বাম পাশের মানটি ডান পাশে টাইপের একটি উদাহরণ কিনা তা যাচাই করে। উদাহরণ স্বরূপ:
if(obj is string)
{
...
}
মনে রাখবেন যে এই ক্ষেত্রে স্ট্রিং হিসাবে আপত্তি পেতে আপনাকে একটি অতিরিক্ত স্পষ্ট কাস্ট ব্যবহার করতে হবে।
মূলশব্দ হিসাবে ব্যবহারযোগ্য ক্ষুদ্র প্রকারের কাস্ট করতে ব্যবহৃত হয়। যদি নির্দিষ্ট মান নির্দিষ্ট প্রকারের উদাহরণ না হয় তবে নালটি ফিরে আসে। উদাহরণ স্বরূপ:
string str = obj as string;
if(str != null)
{
...
}
আমি বলব: এমএসডিএন অনলাইনে পড়ুন, তবে এটি এখানে:
অপারেটরটি কোনও বস্তুর প্রদত্ত প্রকারের সাথে সামঞ্জস্যপূর্ণ কিনা তা যাচাই করে এবং মূল্যায়নের ফলাফলটি বুলিয়ান: সত্য বা মিথ্যা।
অপারেটর হিসাবে কখনও কখনও একটি ব্যতিক্রম ছুঁড়ে না।
অপারেটর, একটি কাস্ট, এটি সফল হলে সত্য হয়। কাস্ট ব্যর্থ হলে এটি মিথ্যা ফেরত দেয়। এটির সাহায্যে আপনি রূপান্তরিত ভেরিয়েবল ক্যাপচার করতে পারবেন না। যদি বিবৃতি এবং অভিব্যক্তিগুলির প্রকারগুলি পরীক্ষা করে এই অপারেটরটি সর্বাধিক কার্যকর হয় তবে ফলাফলটি পরিবর্তনশীল আরও ব্যবহারের প্রয়োজন হয় না, তবে কেবল কাস্ট হয় ideal
যেমন একটি castালাই। এটির সাহায্যে আমরা কর্মক্ষমতা অর্জন করি এবং কোনও কাস্ট অবৈধ হলে ব্যতিক্রমগুলি এড়াতে পারি। কাস্ট অসম্ভব হলে নাল ফিরিয়ে দেওয়া হয়। রেফারেন্স ধরণের জন্য, কাস্টের প্রস্তাব দেওয়া হয়। এটি উভয়ই দ্রুত এবং নিরাপদ is এটি অতিরিক্ত ক্যাসেটগুলি বাদ দেয়
অপারেটর যদি সত্য হয় বস্তুর একই ধরনের এবং মিথ্যা যদি নয়: দ্য C # অপারেটর বস্তুর প্রকার চেক করতে ব্যবহার করা হয় এবং এটি একটি bool মান হয়। অথবা কোনও "অবজেক্ট" অপারেটর কোনও অবজেক্টের রান-টাইম টাইপ কোনও প্রদত্ত টাইপের সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করতে ব্যবহৃত হয়। নাল বস্তুর জন্য এটি মিথ্যা উদাহরণ দেয়
if(obj is AnimalObject)
{
//Then Work
}
অপারেটর হিসাবে
অপারেটর হিসাবে একই কাজটি অপারেটর হয় তবে তার পরিবর্তে পার্থক্যটি বুলের পরিবর্তে হয়, যদি তারা সেই ধরণের সাথে সামঞ্জস্যপূর্ণ হয় তবে এটি বস্তুটি ফিরিয়ে দেয়, অন্যথায় এটি শূন্য হয়। অন্য শব্দে, 'হিসাবে' অপারেটরটি সামঞ্জস্যপূর্ণর মধ্যে রূপান্তর সম্পাদন করতে ব্যবহৃত হয় ধরনের।
যেমন
Type obj = Object as Type;
ওভার ওভারের সুবিধা হ'ল অপারেটর ক্ষেত্রে, castালাই টাইপ করার জন্য, আমাদের দুটি পদক্ষেপ করা দরকার:
Check the Type using is
If it’s true then Type cast
প্রকৃতপক্ষে এটি প্রতিটি সময় থেকেই সিএলআর উত্তরাধিকারক্রমক্রমের মধ্য দিয়ে যাবে এবং প্রতিটি ধরণের নির্দিষ্ট ধরণের বিপরীতে পরীক্ষা করবে।
এটি এড়াতে, হিসাবে এটি ব্যবহার করুন, এটি এক ধাপে এটি করবে। কেবল প্রকারটি পরীক্ষা করার জন্য আমরা হ'ল অপারেটরটি ব্যবহার করব।
অপারেটর যেমন কাস্টের অনুরূপ তবে ব্যর্থ হলে ব্যতিক্রমের পরিবর্তে নাল ফেরায়।
এবং আইজ অপারেটরটি একটি বস্তুর নির্দিষ্ট ধরণের সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করতে ব্যবহৃত হয়। এটি সাধারণত যদি বিবৃতিতে ব্যবহৃত হয়।
is
: অপারেটরটি কোনও অবজেক্টের রান-টাইম টাইপ কোনও প্রদত্ত টাইপের সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করতে ব্যবহৃত হয়
as
: অপারেটর হিসাবে সামঞ্জস্যপূর্ণ ধরণের মধ্যে রূপান্তর করতে ব্যবহৃত হয়।
object s = "this is a test";
string str=string.Empty;
if( s is string)
str = s as string;
is
তারপর as
: এটা দুইবার unboxes। রেফারেন্স ধরণের জন্য, আপনার ঠিক করা উচিত as
, তারপরে এটি কাজ করে কিনা তা দেখতে নাল পরীক্ষা করুন।
নীচের ইউটিউব ভিডিওটি দেখুন যা আরও বেশি প্রদর্শনমূলক এবং চাক্ষুষ উপায়ে পার্থক্যটি ব্যাখ্যা করে:
https://www.youtube.com/watch?v=IKmRtJcRX_I
নীচে কোড ব্যাখ্যা সহ দীর্ঘ উত্তর যায় goes
"IS" কীওয়ার্ডটি কোনও ধরণের সাথে বস্তুর সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করতে দরকারী useful উদাহরণস্বরূপ নীচের কোডে আমরা পরীক্ষা করছি যে "অস্ট" অবজেক্টটি একধরণের "গ্রাহক" শ্রেণি কিনা।
object ocust = new Customer();
if (ocust is Customer)
{
"AS" কীওয়ার্ডটি এক ধরণের থেকে অন্য ধরণের রূপান্তর করতে সহায়তা করে। উদাহরণস্বরূপ নীচের কোডে আমরা বস্তুকে একটি স্ট্রিং ডেটা ধরণে রূপান্তর করছি। যদি "এএস" কীওয়ার্ডটি কাস্ট টাইপ করতে সক্ষম না হয় তবে এটি নাল ফেরায়।
object o = "somestring";
string str = o as string;
আইএস কীওয়ার্ড -> কোনও প্রদত্ত বস্তুর প্রকারটি নতুন অবজেক্টের ধরণের সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করে। এটি কখনই ব্যতিক্রম ছুঁড়ে না ফেলে। এটি একটি বুলিয়ান ধরণের..প্রত্যক্ষ বা মিথ্যা পুনরুদ্ধার করে
`student stud = new student(){}
if(stud is student){} // It returns true // let say boys as derived class
if(stud is boys){}// It returns false since stud is not boys type
//this returns true when,
student stud = new boys() // this return true for both if conditions.`
এএস কীওয়ার্ড: প্রদত্ত বস্তুর প্রকারটি নতুন অবজেক্টের ধরণের সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করে। প্রদত্ত বস্তুটি নতুনের সাথে সামঞ্জস্যপূর্ণ হলে এটি নন-নাল ফেরায়, অন্যথায় নাল .. এটি একটি ব্যতিক্রম ছোঁড়ে।
`student stud = new student(){}
// let say boys as derived class
boys boy = stud as boys;//this returns null since we cant convert stud type from base class to derived class
student stud = new boys()
boys boy = stud as boys;// this returns not null since the obj is pointing to derived class`
উভয় অপারেটর নিরাপদ প্রকারের ingালাইয়ের জন্য ব্যবহৃত হয়।
এএস অপারেটর:
এএস অপারেটরটি কোনও প্রদত্ত বস্তুর প্রকারটি নতুন অবজেক্টের ধরণের সাথে সামঞ্জস্যপূর্ণ কিনা তাও পরীক্ষা করে। এই কীওয়ার্ডটি কোনও প্রদত্ত বস্তুর প্রকারটি নতুন অবজেক্টের ধরণের সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করবে will যদি এটি নতুনটির সাথে সামঞ্জস্য না করে তবে এটি NULL ফিরিয়ে দেবে।
আইএস অপারেটর:
এই অপারেটরটি পরীক্ষা করে দেখা যায় যে কোনও বস্তুর প্রকারটি নতুন বস্তুর সাথে সামঞ্জস্যপূর্ণ কিনা। যদি এটি সামঞ্জস্য হয় তবে তা সত্য হয় অন্যথায় মিথ্যা।