الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

C# Class Name As Parameter Object

بدأه Executioner في 27 أغسطس 2009 · 5 رد · 914 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته:

بداية كل عام وأنتم بخير بحلول شهر الخير.

ثانياً لقد صادفتني نفس المشكلة الموجودة في الصفحة التالية http://www.experts-exchange.com/Programmin...Q_20967282.html أرجو مساعدتي وإفادتي بأي معلومة مفيدة.

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

وشكرا لكم ولجهودكم.

#2

جرب هذا الكود الذي ينشئ كائن من النوع الذي نمرر عبر البارامتر للدالة CreateClass

using System;

namespace ConsoleApplication1
{
	class Program
	{
		static void Main(string[] args)
		{
			c1 _c1 = (c1)CreateClass(typeof(c1));
			c2 _c2 = (c2)CreateClass(typeof(c2));
		}

		// دالة تنشئ لنا كائن حسب النوع الذي طلبناه
		static object CreateClass(Type typeObj)
		{
			if(typeObj == typeof(c1)) {
				return (object)new c1();
			}
			if(typeObj == typeof(c2)) {
				return (object)new c2();
			}
			throw new NotSupportedException();
		}
	}

	public class c1
	{
		public int i = 25;
	}

	public class c2
	{
		public double d = Math.PI;
	}
}

تحياتي...

#3

ايضاً ، يمكنك ان تجرب هذا :

object obj = Activator.CreateInstance(Type.GetType("ConsoleApplication1.c1"));

[وسط]لا اله الا انت سبحانك انى كنت من الظالمين

[/وسط]

#4

شكرا على المعلومة أخي حسن.

تحياتي...

#5

العفو :)

[وسط]لا اله الا انت سبحانك انى كنت من الظالمين

[/وسط]

#6

السلام عليكم

شكراً لكم إخواني، مع أني رأيت حلولاً مشابها للتي أوردتموها ولم تسعفني :blush: ، ولكنها مع ذلك معلومات جديدة بالنسبة لي كوني الآن فهمتها :P ، أكرر شكري.

على كل حال وجدت ضالتي والحمد لله، وهي بكل بساطة كالتالي:

public IEnumerable<T> Select<T>() where T: class
{
	IEnumerable<T> res = from t in myDataContext.GetTable<T>() select t;
	return res;
}

مع أني أعرف هذه الطريقة ولكن لم تخطر ببالي :blush: .

كنت يجب أن أضح الكود الذي أردته أن يعمل :blush: .

تم تعديل هذه المشاركة بواسطة Executioner في 28 أغسطس 2009 في 09:10

مواضيع مشابهة