Articles of generics

सी # में जेनेरिक पैरामीटर के लिए "पैराम्स" कीवर्ड का उपयोग करना

मैं सी # .NET 4.5 में प्रतिनिधि के साथ सुंदर Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult> मुझे लगता है कि 16 को रोकने के लिए एक मनमाना स्थान था (क्या तरीकों में 16 से अधिक पैरामीटर हैं?), लेकिन मुझे यह सोच रहा था: क्या […]

एक बाधित जेनेरिक प्रकार पैरामीटर पर विरासत

मुझे पता है कि एक सामान्य प्रकार के पैरामीटर से वारिस करना संभव नहीं है, लेकिन एक सार प्रकार के डेरिवेटिव के लिए एक सामान्य प्रॉक्सी कार्यान्वित करते समय यह आसान होगा 🙂 क्या किसी को पता है कि यह संभव क्यों नहीं है? उदाहरण सी #: abstract class Foo { public virtual void Bar() […]

रनटाइम पर सामान्य प्रकार की सेटिंग

मुझे कक्षा में जाना है public class A<T> { public static string B(T obj) { return TransformThisObjectToAString(obj); } } ऊपर स्ट्रिंग का उपयोग विशुद्ध रूप से अनुकरणीय है। मैं एक ज्ञात / निर्दिष्ट प्रकार पर स्थिर फ़ंक्शन को इस तरह कॉल कर सकता हूं: string s= A<KnownType>.B(objectOfKnownType); मैं यह कॉल कैसे कर सकता हूं, अगर […]

सी #: आधार प्रकार के साथ जेनेरिक इंटरफ़ेस पर डाली

यहां कोड है: public interface IValidator<T> { bool IsValid(T obj); } public class OrderValidator: IValidator<Order> { // … } public class BaseEntity { } public class Order: BaseEntity { } समस्या यह है कि मैं ऐसा नहीं कर सकता: var validator = new OrderValidator(); // this line throws because type can't be converted var baseValidator […]

जेनेरिक विधियों और विधि अधिभार

विधि ओवरलोडिंग हमें एक ही नाम के साथ कई तरीकों को परिभाषित करने की अनुमति देती है लेकिन एक अलग सेट पैरामीटर (इस प्रकार एक ही नाम पर अलग हस्ताक्षर के साथ) क्या ये दो तरीके अतिभारित हैं? class A { public static void MyMethod<T>(T myVal) { } public static void MyMethod(int myVal) { } […]

आंशिक प्रकार अनुमान

मेरे पास इस तरह की सामान्य विधि (सरलीकृत संस्करण) है: public static TResult PartialInference<T, TResult>(Func<T, TResult> action, object param) { return action((T)param); } उपरोक्त में, param उद्देश्य के प्रकार प्रकार की object है। यह आवश्यकता का हिस्सा है जब मैं प्रकार को भरता हूं, तो मैं इसे इस तरह कह सकता हूं: var test1 = […]

आधार वर्ग के <<सूची के लिए व्युत्पन्न वर्ग के <> सूची का कास्टिंग

मेरे पास दो कक्षाएं हैं: एक आधार वर्ग (पशु) और उसमें से एक वर्ग (बिल्ली) से उत्पन्न होता है। बेज़ क्लास में एक आभासी पद्धति होती है जो कि सूची को इनपुट पैरामीटर के रूप में लेती है। ऐसा कुछ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication9 { class Animal { public […]

सी # दो सामान्य मूल्यों की तुलना करें

संभव डुप्लिकेट: ऑपरेटर == को सामान्य प्रकार के सी # में लागू नहीं किया जा सकता है? मैंने इस तरह कुछ कोडित किया है: public bool IsDataChanged() { T value1 = GetValue2; T value2 = GetValue1(); return (valueInDB != valueFromView); } फिलहाल फ़ंक्शन " ऑपरेटर " = त्रुटि के साथ संकलन नहीं करता है ! […]

क्या रेज़र के साथ एक सामान्य @ हाल्पर विधि बनाना संभव है?

मैं रेज़र में एक सहायक लिखने की कोशिश कर रहा हूं जो निम्न की तरह दिखता है: @helper DoSomething<T, U>(Expression<Func<T, U>> expr) where T : class दुर्भाग्य से, पार्सर सोचता है कि <T एक HTML तत्व की शुरुआत है और मैं एक वाक्य रचना त्रुटि के साथ समाप्त होता है क्या रेजर के साथ एक […]

एक सामान्य प्रकार पैरामीटर पर एक स्थिर विधि कॉलिंग

मैं ऐसा कुछ करने की उम्मीद कर रहा था, लेकिन यह सी # में अवैध प्रतीत होता है: public Collection MethodThatFetchesSomething<T>() where T : SomeBaseClass { return T.StaticMethodOnSomeBaseClassThatReturnsCollection(); } मुझे एक संकलन-समय त्रुटि मिलती है: "टी 'एक' प्रकार पैरामीटर 'है, जो संदर्भ में मान्य नहीं है।" एक सामान्य प्रकार पैरामीटर को देखते हुए, मैं सामान्य […]