c# - রথম - সি#স্ট্রিং এবং স্ট্রিং মধ্যে পার্থক্য কি?




বিগিনারদের জন্য গিটার (20)

অন্যরা বলছে, তারা একই। স্টাইলকপ নিয়ম, ডিফল্টরূপে, আপনাকে string String.Format , String.Join , String.Concat ইত্যাদি স্ট্যাটিক ফাংশন string করার সময় System.String উল্লেখ না System.String সি # কোড স্টাইলের সেরা অনুশীলন হিসাবে string ব্যবহার করতে বাধ্য করবে।

উদাহরণ ( ক্ষেত্রে নোট করুন ):

string s = "Hello world!";
String s = "Hello world!";

প্রতিটি ব্যবহারের জন্য নির্দেশিকা কি কি? এবং পার্থক্য কি?


অন্যান্য প্রোগ্রামারদের মধ্যে সাধারণ অভ্যাস বলে মনে হয়, আমি string উপর string পছন্দ করি, String একটি রেফারেন্স টাইপ যা হাইলাইট করে তা তুলে ধরতে, যেমন জন স্কিট উল্লেখ করেছেন।


আমি শুধু রিফਚਰস বই থেকে, lfousts উত্তর এ যোগ করতে চাই:

সি # ভাষা স্পেসিফিকেশন বলে, "স্টাইলের ব্যাপার হিসাবে, শব্দটির সম্পূর্ণ সিস্টেমের নামটির ব্যবহারে অভিব্যক্তিটি ব্যবহার করা হয়।" আমি ভাষা স্পেসিফিকেশনের সাথে একমত নই; আমি FCL টাইপের নামগুলি ব্যবহার করতে পছন্দ করি এবং পুরনো প্রকারের নামগুলি এড়ানোর চেষ্টা করি। প্রকৃতপক্ষে, আমি চাই যে কম্পাইলারগুলি এমনকি আদিম প্রকারের নাম এবং বাধ্যতামূলক বিকাশকারীগুলিকে পরিবর্তে FCL টাইপের নামগুলি ব্যবহার করার প্রস্তাব দেয় না। এখানে আমার কারণ:

  • আমি তাদের কোডে স্ট্রিং বা স্ট্রিং ব্যবহার করতে হবে কিনা তা জানার জন্য, বেশ কয়েকটি বিকাশকারী বিভ্রান্তি দেখেছি। কারণ C # স্ট্রিং (একটি কীওয়ার্ড) ম্যাপটি ঠিকভাবে System.String (একটি FCL টাইপ) তে থাকে, এতে কোনো পার্থক্য নেই এবং এটি ব্যবহার করা যেতে পারে। একইভাবে, আমি কিছু বিকাশকারীকে বলেছি যে অ্যাপ্লিকেশন 32-বিট OS এ একটি 32-বিট পূর্ণসংখ্যা উপস্থাপিত করে এবং যখন এটি একটি 64-বিট OS তে চলমান হয় তখন 64-বিট পূর্ণসংখ্যাটি উপস্থাপিত করে।এই বিবৃতিটি একেবারে মিথ্যা: C # তে, একটি int- সর্বদা System.Int32 এ মানচিত্র করে এবং তাই এটি OS চলাকালীন OS- এর নির্বিশেষে 32-বিট পূর্ণসংখ্যা উপস্থাপিত করে। প্রোগ্রামাররা তাদের কোডে Int32 ব্যবহার করবে , তাহলে এই সম্ভাব্য বিভ্রান্তি এছাড়াও নির্মূল করা হয়।

  • সি #, লম্বা মানচিত্র System.Int64 তে , তবে একটি ভিন্ন প্রোগ্রামিং ভাষাতে দীর্ঘ একটি ইন্ট16 বা ইন্ট্রোতে মানচিত্র তৈরি করতে পারে । আসলে, C ++ / CLI একটি int32 হিসাবে দীর্ঘ আচরণ করে । যদি কেউ একটি ভাষাতে সোর্স কোডটি পড়তে পারে তবে সেটি কোডের অভিপ্রায়টিকে সহজেই ভুল ব্যাখ্যা করতে পারে যদি সে অন্য প্রোগ্রামিং ভাষাতে প্রোগ্রামিং করতে ব্যবহৃত হয়। আসলে, অধিকাংশ ভাষা এমনকি একটি শব্দ হিসাবে দীর্ঘ আচরণ করবে না এবং এটি ব্যবহার করে কোড কম্পাইল করবে না।

  • এফসিএলটিতে অনেক পদ্ধতি রয়েছে যা তাদের পদ্ধতির নামের অংশ হিসাবে টাইপ নামগুলি রয়েছে। উদাহরণস্বরূপ, BinaryReader টাইপ যেমন পদ্ধতি উপলব্ধ করা হয় ReadBoolean , ReadInt32 , ReadSingle , ইত্যাদি, এবং System.Convert টাইপ যেমন পদ্ধতি উপলব্ধ করা হয় ToBoolean , ToInt32 , ToSingle তাই, এবং। যদিও নিম্নলিখিত কোডটি লিখিতভাবে বৈধ, তবে ফ্লোটের সাথে লাইনটি আমার কাছে খুব অস্বাভাবিক মনে করে এবং এটি সুস্পষ্ট নয় যে লাইন সঠিক:

    BinaryReader br = new BinaryReader(...);
    float val = br.ReadSingle(); // OK, but feels unnatural
    Single val = br.ReadSingle(); // OK and feels good
  • সি # ব্যবহার করে এমন অনেক প্রোগ্রামার একচেটিয়াভাবে ভুলে গেছেন যে CLR এর বিরুদ্ধে অন্যান্য প্রোগ্রামিং ভাষা ব্যবহার করা যেতে পারে, এবং এর কারণে সি # -জীবনগুলি ক্লাস লাইব্রেরির কোডে চলে যায়। উদাহরণস্বরূপ, Microsoft এর FCL প্রায় একচেটিয়াভাবে C # এর লেখা আছে এবং FCL দলের ডেভেলপারদের এখন চালু আছে যেমন গ্রন্থাগার মধ্যে পদ্ধতি এরে এর GetLongLength , যা একটি ফেরৎ Int64 মান করে একটি দীর্ঘ C # কিন্তু অন্য ভাষায় নেই (যেমন C ++ / CLI) দ্বারা। আরেকটি উদাহরণ System.Linq.Enumerable এর LongCount পদ্ধতি।

আমি সম্পূর্ণ অনুচ্ছেদ পড়ার আগে তার মতামত পাইনি।


উভয় একই। কিন্তু কোডিং নির্দেশিকা দৃষ্টিকোণ থেকে string পরিবর্তে string ব্যবহার করা ভাল। এই সাধারণত ডেভেলপারদের ব্যবহার কি। যেমন Int32 ব্যবহার করার পরিবর্তে int হিসাবে int int ব্যবহার করি int

FYI "কীওয়ার্ড স্ট্রিংটি পূর্বনির্ধারিত ক্লাস System.String জন্য কেবল একটি উপনাম। স্ট্রিং।" - C # ভাষা স্পেসিফিকেশন 4.2.3 http://msdn2.microsoft.com/En-US/library/aa691153.aspx


লোয়ার কেস string System.String জন্য একটি উপনাম। তারা C# একই।

সিস্টেমের ধরন ( System.String , System.String , ইত্যাদি) ধরন বা C# aliases ( int , string , ইত্যাদি) ব্যবহার করা উচিত কিনা তা নিয়ে বিতর্ক আছে। আমি ব্যক্তিগতভাবে বিশ্বাস করি আপনি C# aliases ব্যবহার করতে হবে, কিন্তু এটি কেবল আমার ব্যক্তিগত পছন্দ।


শুধু সম্পূর্ণতার জন্য, এখানে সম্পর্কিত তথ্য একটি মস্তিষ্কের ডাম্প হয় ...

অন্যরা যেমন উল্লেখ করেছেন, string System.String জন্য একটি উপনাম। তারা একই কোড কম্পাইল, তাই নির্বাহ সময় কোন পার্থক্য নেই। এটি C # এর এলিয়াসগুলির মধ্যে একটি মাত্র। সম্পূর্ণ তালিকা হল:

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 পাশাপাশি, aliases মান ধরনের সব। decimal একটি মান টাইপ, কিন্তু CLR একটি আদিম টাইপ নয়। শুধুমাত্র আদিম টাইপ যা একটি উপনাম আছে না System.IntPtr

বৈশিষ্ট্যে, মান টাইপ উপনামগুলি "সহজ প্রকারের" হিসাবে পরিচিত। Literals প্রতিটি সহজ ধরনের ধ্রুবক মান জন্য ব্যবহার করা যেতে পারে; কোন অন্যান্য মান ধরনের পাওয়া আক্ষরিক ফর্ম আছে। (VB এর সাথে তুলনা করুন, যা DateTime লিখিত DateTime অনুমোদন করে এবং এটির জন্য একটি উপনাম রয়েছে।)

এমন একটি পরিস্থিতি আছে যা আপনাকে উপনামগুলি ব্যবহার করতে হবে: যখন স্পষ্টভাবে একটি enum এর অন্তর্নিহিত প্রকারকে নির্দিষ্ট করে। এই ক্ষেত্রে:

public enum Foo : UInt32 {} // Invalid
public enum Bar : uint   {} // Valid

যেভাবে স্প্যান এননাম ঘোষণাগুলিকে সংজ্ঞায়িত করে তার একটি ব্যাপার - sbyte অবিচ্ছেদ্য-টাইপ উত্পাদন হতে পারে এমন অংশটি যা sbyte , byte , short , ushort , uint , uint , long , ulong , char একটি টোকেন। .. উদাহরণস্বরূপ পরিবর্তনশীল ঘোষণা দ্বারা ব্যবহৃত হিসাবে একটি টাইপ উত্পাদন বিরোধিতা। এটা অন্য কোন পার্থক্য নির্দেশ করে না।

অবশেষে, যখন এটি ব্যবহার করা হয় তখন: ব্যক্তিগতভাবে আমি বাস্তবায়ন জন্য সর্বত্র উপনাম ব্যবহার করি, তবে যেকোনো API এর জন্য CLR টাইপ। এটি বাস্তবায়নের ক্ষেত্রে আপনি যা ব্যবহার করেন তা সত্যিই গুরুত্বপূর্ণ নয় - আপনার টিমের মধ্যে সামঞ্জস্য চমৎকার, কিন্তু অন্য কেউ যত্ন নেবে না। অন্যদিকে, এটি সত্যি সত্যি গুরুত্বপূর্ণ যে যদি আপনি কোনও API এ কোনও ধরনের উল্লেখ করেন তবে আপনি এটি নিরপেক্ষভাবে একটি ভাষাতে করেন। ReadInt32 নামক একটি পদ্ধতিটি স্পষ্ট নয়, তবে ReadInt নামে একটি পদ্ধতির ব্যাখ্যা দরকার। কলারটি এমন একটি ভাষা ব্যবহার করতে পারে যা উদাহরণস্বরূপ, Int16 জন্য একটি Int16 নির্ধারণ করে। .NET ফ্রেমওয়ার্ক ডিজাইনারগুলি এই প্যাটার্ন অনুসরণ BitConverter , BinaryReader , BinaryReader এবং Convert ক্লাসগুলিতে ভাল উদাহরণ রয়েছে।


সি # একটি ভাষা যা CLR এর সাথে একসাথে ব্যবহৃত হয়।

string সি # একটি টাইপ।

System.String সিএলআর একটি টাইপ।

যখন আপনি সিএলআর string সাথে সি # ব্যবহার করেন তখন System.Stringstring ম্যাপ করা System.String

তাত্ত্বিকভাবে, আপনি একটি C # -compiler বাস্তবায়ন করতে পারেন যা জাভা বাইটকোড তৈরি করেছে। জাভা রানটাইম লাইব্রেরির সাথে ইন্টারঅপারেট করার জন্য এই কম্পাইলারটির একটি বুদ্ধিমান বাস্তবায়ন সম্ভবত java.lang.Stringstring ম্যাপ করবে।


সিস্টেমের ধরনগুলি ব্যবহার করে আপনি C # এবং VB.Net এর মধ্যে পোর্টটিকে আরও সহজ করে তুলতে পারেন, যদি আপনি সেই ধরণের জিনিসটিতে থাকেন।


এই ইউটিউব ভিডিও কার্যত কিভাবে তারা ভিন্ন প্রদর্শন করে।

কিন্তু এখন একটি দীর্ঘ পাঠ্য উত্তর জন্য।

যখন আমরা .NET সম্পর্কে কথা বলি তখন সেখানে দুটি ভিন্ন জিনিস রয়েছে। .NET ফ্রেমওয়ার্ক এবং অন্যান্য ভাষা রয়েছে ( C# , VB.NET ইত্যাদি) যা এই ফ্রেমওয়ার্কটি ব্যবহার করে।

" System.String স্ট্রিং" উর "স্ট্রিং" (মূলধন "S") একটি .NET ফ্রেমওয়ার্ক ডাটা টাইপ, যখন "স্ট্রিং" একটি C# ডাটা টাইপ।

সংক্ষিপ্ত "স্ট্রিং" এর মধ্যে "স্ট্রিং" এর একটি উপনাম (একই নামের সাথে একই নাম বলা হয়)। তাই প্রযুক্তিগত উভয় নীচের কোড বিবৃতি একই আউটপুট দিতে হবে।

String s = "I am String";

অথবা

string s = "I am String";

একইভাবে অন্যান্য সি # ডাটা প্রকারের জন্য আলাইজেসগুলি নীচে দেখানো হয়েছে: -

বস্তু: System.Object , স্ট্রিং: System.String স্ট্রিং, System.String : System.Boolean , বাইট: System.Byte বাইট, sbyte: System.SByte বাইট, সংক্ষিপ্ত: System.Int16 এবং তাই

এখন প্রোগ্রামারের দৃষ্টিকোণ থেকে মিলিয়ন ডলারের প্রশ্ন, তাহলে কখন "স্ট্রিং" এবং "স্ট্রিং" ব্যবহার করবেন?

বিভ্রান্তি এড়াতে প্রথম জিনিস ধারাবাহিকভাবে তাদের এক ব্যবহার। কিন্তু সর্বোত্তম অনুশীলনের দৃষ্টিকোণ থেকে আপনি যখন পরিবর্তনশীল ঘোষণাটি করেন তখন "স্ট্রিং" (ছোট "গুলি") ব্যবহার করা ভাল এবং যখন আপনি এটি ক্লাসের নামে ব্যবহার করছেন তখন "স্ট্রিং" (পুঁজি "S") পছন্দ করা হয়।

নীচের কোডটিতে বাম দিকটি একটি পরিবর্তনশীল ঘোষণা এবং এটি "স্ট্রিং" ব্যবহার করে ঘোষণা করা হয়েছে। ডান দিকে আমরা একটি পদ্ধতি আহ্বান করছি তাই "স্ট্রিং" আরো বুদ্ধিমান।

string s = String.ToUpper() ;

string System.String জন্য C # তে একটি উপনাম।
তাই টেকনিক্যালি, কোন পার্থক্য আছে। এটা int বনাম System.Int32System.Int32 মত।

যতদূর নির্দেশিকা হিসাবে, আপনি সাধারণত কোনও বস্তুর উল্লেখ করছেন তা string ব্যবহার করার জন্য এটি সুপারিশ করা হয়।

যেমন

string place = "world";

একইভাবে, আমার মনে হয় String ব্যবহার করার জন্য সাধারণত আপনাকে সুপারিশ করা হয় যদি আপনাকে অবশ্যই ক্লাসে উল্লেখ করতে হয়।

যেমন

string greet = String.Format("Hello {0}!", place);

এটি এমন একটি স্টাইল যা মাইক্রোসফট তাদের উদাহরণগুলিতে ব্যবহার করতে থাকে।

মনে হচ্ছে এই এলাকার দিকনির্দেশটি পরিবর্তিত হতে পারে, যেমন StyleCop এখন সি # নির্দিষ্ট উপায়ে ব্যবহারগুলিকে প্রয়োগ করে।


Stringএকটি শব্দ নয় এবং এটি আইডেন্টিফায়ার হিসাবে ব্যবহার করা যেতে পারে তবে stringএকটি শব্দ এবং সনাক্তকারী হিসাবে ব্যবহার করা যাবে না। এবং ফাংশন পয়েন্ট ফাংশন উভয় একই।


System.String হল .NET স্ট্রিং ক্লাস - C # string System.String জন্য একটি উপনাম। string - তাই ব্যবহারে তারা একই।

নির্দেশিকা হিসাবে আমি খুব বেগ পেতে এবং আপনি যা মনে করেন শুধু ব্যবহার করতে হবে না - জীবনের আরো গুরুত্বপূর্ণ জিনিস এবং কোড যাই হোক না কেন একই হতে যাচ্ছে।

আপনি যদি নিজেরাই এমন Int16 সিস্টেমগুলি খুঁজে পান যেখানে আপনি ব্যবহার করছেন এমন পূর্ণসংখ্যার আকার নির্দিষ্ট করতে চান এবং তাই Int16 , Int32 , UInt16 , UInt32 ইত্যাদি ব্যবহার করতে চান তবে String ব্যবহার করার জন্য এটি আরও স্বাভাবিক লাগতে পারে - এবং যখন ভিন্ন .নেট ভাষায় এটি জিনিসগুলিকে আরো সমতুল্য করতে পারে - অন্যথায় আমি স্ট্রিং এবং int ব্যবহার করব।


string System.String জন্য শুধু একটি উপনাম। কম্পাইলার তাদের অভিন্নভাবে আচরণ করবে।

আপনি উল্লেখ হিসাবে শুধুমাত্র বাস্তব পার্থক্য সিনট্যাক্স হাইলাইটিং হয়, এবং আপনি String ব্যবহার যদি using System ব্যবহার using System আপনি লিখতে হবে।


string একটি সংরক্ষিত শব্দ, কিন্তু String শুধুমাত্র একটি বর্গ নাম। এর অর্থ হল string নিজের দ্বারা একটি পরিবর্তনশীল নাম হিসাবে ব্যবহার করা যাবে না।

কিছু কারণে যদি আপনি একটি পরিবর্তনশীল বলা স্ট্রিং চেয়েছিলেন, আপনি এই কম্পাইল প্রথম শুধুমাত্র দেখতে চাই:

StringBuilder String = new StringBuilder();  // compiles
StringBuilder string = new StringBuilder();  // doesn't compile 

যদি আপনি সত্যিই একটি পরিবর্তনশীল নাম স্ট্রিং বলা চান তবে আপনি একটি উপসর্গ হিসাবে @ ব্যবহার করতে পারেন:

StringBuilder @string = new StringBuilder();

আরেকটি সমালোচনামূলক পার্থক্য: স্ট্যাক ওভারফ্লো ভিন্নভাবে তাদের হাইলাইট করে।


একটি পার্থক্য আছে - আপনি using System; না করে String ব্যবহার করতে পারবেন না using System; পূর্বেই।


স্ট্রিং একটি শব্দ, এবং আপনি একটি সনাক্তকারী হিসেবে স্ট্রিং ব্যবহার করতে পারবেন না।

স্ট্রিং একটি শব্দ নয়, এবং আপনি এটি একটি সনাক্তকারী হিসাবে ব্যবহার করতে পারেন:

উদাহরণ

string String = "I am a string";

কীওয়ার্ডটি কীওয়ার্ড সমস্যা থেকে সরানোর stringজন্য একটি উপনাম System.String, দুইটি ঠিক সমান।

 typeof(string) == typeof(String) == typeof(System.String)

নতুন উত্তর 6 বছর এবং 5 মাস (বিলম্ব) পরে।

যদিও stringএকটি সংরক্ষিত C # শব্দ যা সর্বদা একটি নির্দিষ্ট অর্থ আছে, Stringএটি কেবল একটি সাধারণ শনাক্তকারী যা কিছুকে উল্লেখ করতে পারে। বর্তমান প্রকারের সদস্যদের উপর নির্ভর করে, বর্তমান নামস্থান এবং প্রয়োগ করা usingনির্দেশাবলী এবং তাদের স্থানের অবস্থান, Stringএকটি মান বা একটি ধরন থেকে আলাদা হতে পারে global::System.String

usingনির্দেশাবলী সাহায্য করবে না যেখানে আমি দুটি উদাহরণ প্রদান করা হবে

প্রথমত, যখন Stringএকটি হল মান বর্তমান প্রকার (বা স্থানীয় পরিবর্তনশীল) এর:

class MySequence<TElement>
{
  public IEnumerable<TElement> String { get; set; }

  void Example()
  {
    var test = String.Format("Hello {0}.", DateTime.Today.DayOfWeek);
  }
}

উপরে সংকলন করা হবে না কারণ IEnumerable<>একটি অ স্ট্যাটিক সদস্য বলা হয় না Format, এবং কোন এক্সটেনশান পদ্ধতি প্রযোজ্য নয়। উপরের ক্ষেত্রে, এটি এখনও Stringঅন্য প্রসঙ্গগুলিতে ব্যবহার করা সম্ভব যেখানে কোনও ধরনটি সিন্ট্যাক্টিকের একমাত্র সম্ভাবনা। উদাহরণস্বরূপ String local = "Hi mum!";ঠিক আছে (নামস্থান এবং usingনির্দেশাবলী উপর নির্ভর করে ) হতে পারে ।

খারাপ: বলার অপেক্ষা রাখে না String.Concat(someSequence)(এস উপর নির্ভর করে using) Linq এক্সটেনশান পদ্ধতিতে যান Enumerable.Concat। এটা স্ট্যাটিক পদ্ধতিতে যেতে হবে না string.Concat

দ্বিতীয়ত, যখন Stringঅন্য ধরনের হয় , বর্তমান প্রকারের ভিতরে নিস্তেজ:

class MyPiano
{
  protected class String
  {
  }

  void Example()
  {
    var test1 = String.Format("Hello {0}.", DateTime.Today.DayOfWeek);
    String test2 = "Goodbye";
  }
}

Exampleপদ্ধতিতে কোন বিবৃতি সংকলন। এখানে Stringসবসময় একটি পিয়ানো string , MyPiano.String। কোন সদস্য ( staticবা নেই) Formatএটি বিদ্যমান (অথবা তার বেস বর্গ থেকে উত্তরাধিকারী হয়)। এবং মান "Goodbye"এটি রূপান্তর করা যাবে না।


ড্যানিয়েল সলিস বই থেকে এই বিষয়ে একটি উদ্ধৃতি আছে ।

সমস্ত পূর্বনির্ধারিত ধরন সরাসরি অন্তর্নিহিত .NET প্রকারের সাথে ম্যাপ করা হয়। C # টাইপের নামগুলি (স্ট্রিং) কেবল .NET প্রকারের (স্ট্রিং বা সিস্টেম. স্ট্রিং) জন্য আলাইজেশন। তাই, .NET নামগুলি ব্যবহার করে সিনট্যাক্টিকভাবে কাজ করে, যদিও এটি নিরুৎসাহিত হয়। একটি C # প্রোগ্রামের মধ্যে, আপনার অবশ্যই .NET নামের পরিবর্তে C # নাম ব্যবহার করা উচিত।


দুইটির মধ্যে কোন পার্থক্য নেই - stringতবে, অন্য ডেভেলপারদের উত্স কোড বিবেচনা করার সময়, পছন্দসই বিকল্প বলে মনে হয়।


পার্টির দেরিতে আসছে: আমি সিএলআর ধরনের 100% সময় ব্যবহার করি (ভাল, যদি সি # টি ব্যবহার করতে বাধ্য না হয় তবে আমি মনে করি শেষ সময় কখন মনে হয় না)।

আমি মূলত এই বছর আগে শুরু, রিচার দ্বারা সিএলআর বই অনুযায়ী। এটি আমার কাছে ধারনা করেছিল যে সমস্ত CLR ভাষাগুলি চূড়ান্তভাবে CLR প্রকারের সেট সমর্থন করতে সক্ষম হবেন, তাই CLR প্রকারগুলি ব্যবহার করে আপনি নিজেকে আরও পরিষ্কার এবং সম্ভবত "পুনঃব্যবহারযোগ্য" কোড সরবরাহ করুন।

এখন যেহেতু আমি বছর ধরে এটি করছি, এটি একটি অভ্যাস এবং আমি সেই রঙটি পছন্দ করি যা VS CLR প্রকারের জন্য দেখায়।

একমাত্র আসল ডাউনারটি হল স্বয়ং-সম্পূর্ণ C # টাইপ ব্যবহার করে, তাই আমি পরিবর্তে CLR প্রকার নির্দিষ্ট করতে স্বয়ংক্রিয়ভাবে জেনারেটেড টাইপ পুনরায় টাইপ করে শেষ করি।

এছাড়াও, এখন, যখন আমি "int" বা "string" দেখি, এটি আমার কাছে সত্যিই ভুল দেখাচ্ছে, যেমন আমি 1970 এর সি কোডটি দেখছি।







alias