मुझे लगता है कि जावा के List<?>
के लिए सबसे अच्छा मैच होगा सी # 4.0 IEnumerable<out T>
आप एक विधि है कि आप से List<?>
लेता है, तो List<Object>
से कॉल करने और List<String>
कर सकते हैं ताकि तरह:
List<Object> objList = new List<Object>();
List<String> strList = new List<String>();
doSomething(objList); //OK
doSomething(strList); //OK
public void doSomething(List<?> theList) {
///Iterate through list
}
सी # 4.0 IEnumerable<T>
इंटरफ़ेस वास्तव मेंहै, जिसका अर्थ है कि अगर, R
T
से प्राप्त होता है, IEnumerable<T>
IEnumerable<R>
से असाइन किया जा सकता है।
List<Object> objList = new List<Object>();
List<String> strList = new List<String>();
DoSomething(objList); //OK
DoSomething(strList); //OK
public void DoSomething<T>(IEnumerable<T> theList) {
///Iterate through list
}
संपादित करें: तो सी # 4.0 उपलब्ध नहीं है, आप हमेशा वापस या तो untyped IEnumerable
पर गिर सकती है
तो, तुम सब करने की है, तो अपने DoSomething
में doSomething
बनाने के लिए और IEnumerable<T>
पैरामीटर को स्वीकार किया है या IList
।
स्रोत
2010-08-12 03:05:05
सवाल यह है; क्या यह वास्तव में एक अच्छा विचार है, या आप प्रकार की सुरक्षा के साथ बेहतर होगा? –
सूची
कुछ संदर्भ होना अच्छा लगेगा ... इस घोषणा के लिए कहां और क्या उपयोग किया जा रहा है? –