জিইউইডিকে কীভাবে যাচাই করা যায় এটি একটি জিইউডি UID


100

কোনও স্ট্রিংয়ে একটি জিইউডি বনাম কেবল সংখ্যার একটি স্ট্রিং রয়েছে কীভাবে তা নির্ধারণ করবেন।

কোনও জিইউডিতে সর্বদা কমপক্ষে 1 টি আলফা অক্ষর থাকবে?


উত্তর:


172

এগুলি সাহায্য করে কিনা দেখুন: -

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


4
.NET 4.0: দ্বিতীয় লিঙ্ক ... অন্যথায়, প্রথম লিঙ্ক। +1
খেপরি

সি # 7.0 ইনলাইন আউট ভেরিয়েবলের জন্য var বা গাইড বা _ ব্যবহার করুন bool isValid = Guid.TryParse(inputString, out var tempGuid);বাbool isValid = Guid.TryParse(inputString, out _);
xadriel

9

আমি যখন কেবল কোনও স্ট্রিংটি পরীক্ষার জন্য এটি জিইউডি কিনা তা দেখার জন্য, আমি সত্যিই আমার প্রয়োজন নেই এমন গাইড নির্দেশিকা তৈরি করতে চাই না। তাই ...

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))
{
...
}

6
2018 এর জন্য আপডেট করুনreturn Guid.TryParse(value, out var _);
ওয়েটফোরিট

7

একটি জিইউইডি হ'ল একটি 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-বিট সংখ্যা এবং বিভিন্ন উপায়ে প্রতিনিধিত্ব করা যেতে পারে।


6

কোনও গিউডিটিতে আলফা অক্ষর রয়েছে এমন কোনও গ্যারান্টি নেই। 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;
    }
}

2

গৃহীত উত্তরের উপর ভিত্তি করে আমি নিম্নরূপে একটি এক্সটেনশন পদ্ধতি তৈরি করেছি:

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 রূপান্তর হিসাবে সেই মানটি ফিরিয়ে দেওয়া কোনও সমস্যা ছিল না।


4
গাইডের উপরে ম্যাজিক নাম্বার কেন ব্যবহার করবেন?
মাত্তুমোটু


1

বৈধ নির্দেশিকা হলে গাইডটি ফিরিয়ে দেবে, অন্যথায় এটি গাইডটি ফিরে আসবে

if (!Guid.TryParse(yourGuidString, out yourGuid)){
          yourGuid= Guid.Empty;
}


0

জিইউডি কনস্ট্রাক্টর স্ট্যান্ডার্ড কার্যকারিতা ব্যবহার করুন

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

সচেতন হন যে প্রশ্নটি সি # ভাষার জন্য করা হয়েছিল এবং প্রদত্ত উত্তরটি ভিবি.নেটে রয়েছে। এটি সি # এর জন্য ম্যাপ করতে ভাল লাগবে।
পিমেন্টা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.