كيف قمت بتعيين نوع أي كائن لطريقة .NET العامة؟

StackOverflow https://stackoverflow.com/questions/2543085

  •  23-09-2019
  •  | 
  •  

سؤال

لنفترض أنني قمت بإنشاء طريقة كهذه

private void Test<t>(t str)
{

}

الآن من طريقة أخرى أسميها

private void BtnClick()
{
    string a = "";


    test<Here I Want To assign The Type what ever the type of 'a' is>();
}

كيف يمكنني أن أفعل هذا ؟

لا يوجد حل صحيح

نصائح أخرى

حسنا ، إذا a هي سلسلة ، يمكنك الكتابة:

Test<string>(a);

و إذا a هو int, ، يمكنك كتابة:

Test<int>(a);

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

private void BtnClick<T>()
{
    T a = ...;


    Test<T>(a);
}

C# 2.0 ويوفر لاحقًا استدلالًا نوعًا ، لذلك لن تضطر إلى تحديد النوع:

Test(a);

يمكنك ببساطة استدعاء الوظيفة المارة a كمعلمة. سيحدد الاستدلال نوع ما يجب أن يكون a.

static void Main()
{
    string temp = "blah";
    Test(temp);
    Console.Read();
}

private static void Test<T>(T input)
{
    Console.WriteLine(typeof(T).ToString());
} 

System.String سيتم طباعتها إلى وحدة التحكم.

يحرر: ولكن ، نعم ، استدلال نوع غائب ، وعندما تعرف نوعه الذي هو متغيرك ، يمكنك دائمًا أن تكون صريحًا مع النوع. Test<string>(temp);

خيار آخر هو رمز تنظيف المنطق في وظيفة مؤقت.

قم بإنشاء مهمة مؤقت تعمل يوميا / أسبوعيا / شهريا (ساعات الليل)، وحلقة من خلال قائمة المهام وحذف المهام المهامية ومهام سير العمل الملغاة.

1.) حذف مهام اليتيم

المهام التي تم إنشاؤها بواسطة سير العمل بدأت في قائمة العناصر تحتوي على حقل "WorkflowsflistIS" يحتوي على GUID للقائمة والأحرف "Workflowitemid" يحتوي على معرف عنصر القائمة المرتبط به.

المهام التي تم إنشاؤها خلاف ذلك (وليس عن طريق طباعة العمل القائمة) لها خالية من "WorkflowlistIS" و "Workflowitemid".

يمكنك استخدام هذين الحقلين للحصول على مهام سير العمل فقط وإذا لم يكن هناك أي عنصر بهذا المعرف في القائمة (تم حذف العنصر) ثم حذف المهمة.

2.) حذف مهام سير العمل المنتهي

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

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