কেবলমাত্র সম্পূর্ণতার জন্য, এখানে সম্পর্কিত তথ্যের মস্তিষ্কের ডাম্প ...
অন্যরা stringযেমন উল্লেখ করেছে, এটির জন্য একটি উপনাম System.String। এগুলি একই কোডে সংকলন করে, তাই কার্যকর করার সময় কোনও পার্থক্য নেই। এটি সি # এর এলিয়াসগুলির মধ্যে একটি মাত্র। সম্পূর্ণ তালিকাটি হ'ল:
object: System.Object
string: System.String
bool: System.Boolean
byte: System.Byte
sbyte: System.SByte
short: System.Int16
ushort: System.UInt16
int: System.Int32
uint: System.UInt32
long: System.Int64
ulong: System.UInt64
float: System.Single
double: System.Double
decimal: System.Decimal
char: System.Char
stringএবং বাদে object, এলিয়াসগুলি সমস্ত মান ধরণের। decimalএকটি মান ধরণের, তবে সিএলআর-তে আদিম ধরণের নয়। শুধুমাত্র আদিম টাইপ যা একটি ওরফে থাকে না System.IntPtr।
বৈশিষ্টটিতে, মান ধরণের উপকরণগুলি "সাধারণ প্রকার" হিসাবে পরিচিত। লিটারালগুলি প্রতিটি সাধারণ ধরণের ধ্রুবক মানের জন্য ব্যবহার করা যেতে পারে; অন্য কোনও মূল্য ধরণের আক্ষরিক ফর্ম উপলব্ধ নেই। (এটি ভিবির সাথে তুলনা করুন, যা DateTimeআক্ষরিক অনুমতি দেয় এবং এর জন্য একটি নামও রয়েছে))
সেখানে এক পরিস্থিতিতে যা তুমি আছে যখন স্পষ্টভাবে একটি enum এর অন্তর্নিহিত প্রকার উল্লেখ: alias লেখা ব্যবহার করতে। এই ক্ষেত্রে:
public enum Foo : UInt32 {} // Invalid
public enum Bar : uint {} // Valid
এই ভাবে ব্যাপার বৈশিষ্ট সংজ্ঞায়িত enum ঘোষণা নেই - কোলন পরে অংশ হতে হয়েছে অবিচ্ছেদ্য-টাইপ উৎপাদন, যার মধ্যে একটি টোকেন হয় sbyte, byte, short, ushort, int, uint, long, ulong, char... একটি উল্টোদিকে টাইপ হিসাবে উৎপাদন উদাহরণস্বরূপ পরিবর্তনশীল ঘোষণা দ্বারা ব্যবহৃত। এটি অন্য কোনও পার্থক্য নির্দেশ করে না।
শেষ অবধি, যখন কোনটি ব্যবহার করা উচিত: ব্যক্তিগতভাবে আমি প্রয়োগের জন্য সর্বত্র উপনামগুলি ব্যবহার করি, তবে কোনও এপিআইয়ের জন্য সিএলআর টাইপ করি। আপনি বাস্তবায়নের ক্ষেত্রে যা ব্যবহার করেন তা সত্যিই গুরুত্বপূর্ণ নয় - আপনার দলের মধ্যে ধারাবাহিকতাটি দুর্দান্ত, তবে অন্য কারও নজর নেই। অন্যদিকে, এটি সত্যই গুরুত্বপূর্ণ যে আপনি যদি কোনও এপিআই-তে কোনও প্রকার উল্লেখ করেন, আপনি ভাষা-নিরপেক্ষ উপায়ে এটি করেন। নামক পদ্ধতিটি ReadInt32দ্ব্যর্থহীন, অন্যদিকে একটি পদ্ধতির ReadIntব্যাখ্যা প্রয়োজন। কলার এমন একটি ভাষা ব্যবহার করতে পারেন যা উদাহরণস্বরূপ একটি intউপনাম সংজ্ঞায়িত করে Int16। .NET Framework ডিজাইনার এই প্যাটার্ন অনুসরণ করেছেন, ভাল উদাহরণ হচ্ছে BitConverter, BinaryReaderএবং Convertক্লাস।
stringএকটি হল আভিধানিক সি # এর কনস্ট্রাক্ট ব্যাকরণ যেহেতুSystem.Stringশুধু একটি প্রকার। যে কোনও স্পষ্টে উল্লিখিত কোনও স্পষ্ট পার্থক্য নির্বিশেষে, এখনও এই স্পষ্ট পার্থক্য রয়েছে যা কিছুটা অস্পষ্টতার সাথে সমন্বিত হতে পারে। ভাষা নিজেই আবশ্যক সমর্থনstringএকটি উপায় বাস্তবায়ন নয় যে (বেশ) যাতে ছাত্রলীগের মধ্যে একটি নির্দিষ্ট বর্গ জন্য বিবেচনা করতে বাধ্য।