মধ্যে পার্থক্য কি Guid.NewGuid()
এবং new Guid()
?
কোনটি পছন্দ হয়?
মধ্যে পার্থক্য কি Guid.NewGuid()
এবং new Guid()
?
কোনটি পছন্দ হয়?
উত্তর:
new Guid()
একটি "খালি" অল -0 গাইড (00000000-0000-0000-0000-00000000000000 খুব কার্যকর নয়) তৈরি করে।
Guid.NewGuid()
আপনি সম্ভবত যা চান তা একটি অনন্য মান সহ একটি আসল গাইড করে।
new Guid()
সমান Guid.Empty
।
Guid.NewGuid()
একটি অ্যালগরিদম ব্যবহার করে একটি নতুন ইউইউডি তৈরি করে যা সংঘর্ষগুলি খুব, খুব অসম্ভবের জন্য তৈরি করা হয়েছে।
new Guid()
অল-জিরো এমন একটি ইউইউডি তৈরি করে।
সাধারণত আপনি প্রাক্তনটিকে পছন্দ করবেন, কারণ এটি কোনও ইউইউডির মূল বিষয় (যদি আপনি এটি অন্য কোথাও থেকে গ্রহণ না করেন)।
এমন কেস রয়েছে যেখানে আপনি সত্যই একটি অল-শূন্য ইউআইডি চান, তবে এই ক্ষেত্রে Guid.Empty
বা default(Guid)
আপনার অভিপ্রায়টি সম্পর্কে আরও পরিষ্কার, এবং এটির কোনও অনন্য মূল্য তৈরি হওয়ার প্রত্যাশা করে কেউ পড়ার সম্ভাবনা কম less
সব মিলিয়ে new Guid()
স্বচ্ছতার এই অভাবে যে দরকারী নয়, কিন্তু এটি একটি মান-টাইপ করে একটি parameterless কন্সট্রাকটর যে আয় একটি সম্পূর্ণ শূন্য-এবং-NULLs মান নেই আছে সম্ভব নয়।
সম্পাদনা: প্রকৃতপক্ষে, কোনও মান ধরণে প্যারামিটারলেস কনস্ট্রাক্টর থাকা সম্ভব যা সমস্ত কিছু শূন্য এবং নালায় সেট করে না, তবে আপনি এটি সি # তে করতে পারবেন না, এবং এটি কখন ডাকা হবে এবং কখন হবে সে সম্পর্কে নিয়ম the বিভ্রান্তিকর হয়ে উঠেছে কেবল একটি অল-জিরো স্ট্রাক্ট হয়ে উঠুন, সুতরাং এটি কোনওভাবেই ভাল ধারণা নয়।
[আমি বুঝতে পারি এটি একটি পুরানো থ্রেড, কেবল আরও কিছু বিশদ যুক্ত করে] মার্ক এবং জন হানার দুটি উত্তর পার্থক্যগুলি সংক্ষিপ্ত করে, যদিও এটি কিছু আগ্রহী হতে পারে
Guid.NewGuid()
ঘটনাচক্রে CoCreateGuid (Ole32- এ একটি COM কল) কল করে ( এখানে রেফারেন্স ) এবং প্রকৃত কাজটি ইউইডক্রিয়েট দ্বারা সম্পন্ন হয় ।
গাইড.এম্পটি বলতে বোঝায় যে কোনও গাইডে সমস্ত শূন্য রয়েছে কিনা তা পরীক্ষা করতে। নতুন গাইড () এর সাথে প্রশ্নযুক্ত গাইডের মান তুলনা করার মাধ্যমে এটিও করা যেতে পারে
সুতরাং, আপনার যদি কোনও অনন্য সনাক্তকারী প্রয়োজন হয় তবে উত্তরটি হ'ল গাইড N নিউগুইড ()
Guid.NewGuid()
, যেমন এটি যেমন জিইউডিগুলি তৈরি করে।
Guid.NewGuid()
একটি খালি Guid
অবজেক্ট তৈরি করে, কল করে এটি আরম্ভ করে CoCreateGuid
এবং বস্তুকে ফেরত দেয়।
new Guid()
কেবল একটি খালি জিইউইডি তৈরি করে (সমস্ত শূন্য, আমি মনে করি)।
আমি অনুমান করি যে তারা কন্সট্রাক্টরকে যেমন প্রকাশ্য করতে হবে Guid
তেমন একটি struct
।