কোনও স্ট্রিংয়ে একটি জিইউডি বনাম কেবল সংখ্যার একটি স্ট্রিং রয়েছে কীভাবে তা নির্ধারণ করবেন।
কোনও জিইউডিতে সর্বদা কমপক্ষে 1 টি আলফা অক্ষর থাকবে?
উত্তর:
এগুলি সাহায্য করে কিনা দেখুন: -
Guid guidResult = Guid.Parse(inputString)
( http://msdn.microsoft.com/en-us/library/system.guid.parse.aspx )
bool isValid = Guid.TryParse(inputString, out guidOutput)
http://msdn.microsoft.com/en-us/library/system.guid.tryparse.aspx
bool isValid = Guid.TryParse(inputString, out var tempGuid);
বাbool isValid = Guid.TryParse(inputString, out _);
আমি যখন কেবল কোনও স্ট্রিংটি পরীক্ষার জন্য এটি জিইউডি কিনা তা দেখার জন্য, আমি সত্যিই আমার প্রয়োজন নেই এমন গাইড নির্দেশিকা তৈরি করতে চাই না। তাই ...
public static class GuidEx
{
public static bool IsGuid(string value)
{
Guid x;
return Guid.TryParse(value, out x);
}
}
এবং আপনি এটি কীভাবে ব্যবহার করবেন তা এখানে:
string testMe = "not a guid";
if (GuidEx.IsGuid(testMe))
{
...
}
return Guid.TryParse(value, out var _);
একটি জিইউইডি হ'ল একটি 16-বাইট (128-বিট) নম্বর, সাধারণত 32-বর্ণের হেক্সাডেসিমাল স্ট্রিং দ্বারা প্রতিনিধিত্ব করা হয়। একটি জিইউইডির (হেক্স আকারে) কোনও আলফা অক্ষর থাকা দরকার না, যদিও সম্ভবত এটি সম্ভবত এটি হয়। আপনি যদি হেক্স আকারে কোনও জিইউইডিকে লক্ষ্য করে নিচ্ছেন তবে আপনি পরীক্ষা করতে পারবেন যে স্ট্রিংটি 32-অক্ষর দীর্ঘ (ড্যাশগুলি এবং কোঁকড়ানো বন্ধনীগুলি পরে) এবং কেবল অক্ষর এএফ এবং সংখ্যা রয়েছে।
জিইউডিগুলি উপস্থাপনের নির্দিষ্ট স্টাইল রয়েছে (ড্যাশ-বসানো) এবং এটি পরীক্ষা করার জন্য নিয়মিত এক্সপ্রেশন ব্যবহার করা যেতে পারে, যেমন,
@"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$"
http://www.geekzilla.co.uk/view8AD536EF-BC0D-427F-9F15-3A1BC663848E.htm থেকে । এটি বলেছিল, এটি জোর দেওয়া উচিত যে জিইউইডিটি সত্যই একটি 128-বিট সংখ্যা এবং বিভিন্ন উপায়ে প্রতিনিধিত্ব করা যেতে পারে।
কোনও গিউডিটিতে আলফা অক্ষর রয়েছে এমন কোনও গ্যারান্টি নেই। FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
একটি বৈধ জিইউডি তাই হয় 00000000-0000-0000-0000-000000000000
এবং এর মধ্যে যে কোনও কিছু।
যদি আপনি .NET 4.0 ব্যবহার করে থাকেন তবে আপনি উপরের উত্তরটি গাইড.পার্স এবং গাইড.ট্রি পার্সের জন্য ব্যবহার করতে পারেন। অন্যথায়, আপনি এই জাতীয় কিছু করতে পারেন:
public static bool TryParseGuid(string guidString, out Guid guid)
{
if (guidString == null) throw new ArgumentNullException("guidString");
try
{
guid = new Guid(guidString);
return true;
}
catch (FormatException)
{
guid = default(Guid);
return false;
}
}
গৃহীত উত্তরের উপর ভিত্তি করে আমি নিম্নরূপে একটি এক্সটেনশন পদ্ধতি তৈরি করেছি:
public static Guid ToGuid(this string aString)
{
Guid newGuid;
if (string.IsNullOrWhiteSpace(aString))
{
return MagicNumbers.defaultGuid;
}
if (Guid.TryParse(aString, out newGuid))
{
return newGuid;
}
return MagicNumbers.defaultGuid;
}
যেখানে "MagicNumbers.defaultGuid" কেবল "একটি শূন্য" সমস্ত শূন্য গাইড "00000000-0000-0000-0000-00000000000000"।
আমার ক্ষেত্রে অবৈধ ToGuid রূপান্তর হিসাবে সেই মানটি ফিরিয়ে দেওয়া কোনও সমস্যা ছিল না।
দেখতে http://en.wikipedia.org/wiki/Globally_unique_identifier
আসলে কোনও আলফা থাকবে এমন কোনও গ্যারান্টি নেই।
if (মাইগুইড! = গিল্ড। এম্পটি)
{
// বৈধ গিল্ড
}
অন্য {
// অবৈধ গিল্ড
}
জিইউডি কনস্ট্রাক্টর স্ট্যান্ডার্ড কার্যকারিতা ব্যবহার করুন
Public Function IsValid(pString As String) As Boolean
Try
Dim mGuid As New Guid(pString)
Catch ex As Exception
Return False
End Try
Return True
End Function