سؤال

أرغب في تعيين مرجع إلى كائن بدلاً من قيمة الكائن باستخدام علامة التصنيف

configMapping.Add("HEADERS_PATH", Me.headers_path)

وبهذه الطريقة عندما سأسترجع قيمة "Headers_Path" ، سأكون قادرًا على تعيين قيمة لي. Headers_Path

شيء مثل مشغل "&" في ج

هل كانت مفيدة؟

المحلول

أنا أفترض ذلك me.headers_path هو نظام. لان System.String هل لا يمكن تحقيق ما تريده. ولكن يمكنك إضافة مستوى إضافي من عدم التوجيه لتحقيق سلوك مماثل.

يمكن حل جميع المشكلات في علوم الكمبيوتر بمستوى آخر من عدم التوجيه. بتلر لامبسون

عينة في C# (يرجى أن تكون لطيفًا لتحرير VB وإزالة هذا التعليق لاحقًا):

public class Holder<T> {
    public T Value { get; set; }
}

...

Holder<String> headerPath = new Holder<String>() { Value = "this is a test" };
configMapping.Add("HEADERS_PATH", headerPath);

...

((Holder<String>)configMapping["HEADERS_PATH"]).Value = "this is a new test";

// headerPath.Value == "this is a new test"

نصائح أخرى

اجعل Headers_Path ملاءمة (مع مجموعة)

يبدو أن هذا هو القاموس ، والذي في .NET 2.0 يمكنك تعريفه على أنه قاموس إذا كانت المراجع التي تريد تحديثها هي دائمًا سلاسل ، أو القاموس (غير موصى به) إذا كنت ترغب في الحصول على مرجع تعسفي.

إذا كنت بحاجة إلى استبدال القيم الموجودة في القاموس ، فيمكنك تحديد فصلك الخاص وتوفير بعض أساليب المساعد لتسهيل ذلك.

لست متأكدًا تمامًا مما تريد القيام به. على افتراض أن Smink صحيح ، فهناك ترجمة VB لرمزه. آسف لا أستطيع تعديله ، لا أعتقد أن لدي ما يكفي من النائب حتى الآن.

public class Holder(Of T)
    public Value as T 
end class
...
Dim headerPath as new Holder(Of String)
headerPath.Value = "this is a test"
configMapping.Add("HEADERS_PATH", headerPath)
...
Directcast(configMapping["HEADERS_PATH"]),Holder(Of String)).Value = "this is a new test"

'headerPath.Value now equals "this is a new test"

MARCJ - تحتاج إلى الهروب من الأقواس الزاوية في إجابتك ، لذلك استخدم <و> للحصول على>. مرة أخرى آسف لم أستطع فقط تحرير منشورك لك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top