2012-03-16 16 views
5

मैंने this post देखा और मैं जानना चाहता हूं कि यह वीबी में संभव है या नहीं।एक्सटेंशन विधि के बजाय वीबी एक्सटेंशन संपत्ति

तो एक्सटेंशन विधि की तरह, एक्सटेंशन गुण VB.Net में मौजूद हैं?

Here मैंने पढ़ा है कि वे करते हैं, लेकिन कोई उदाहरण नहीं मिल पा रहे हैं।

उत्तर

7

मुझे विश्वास है कि व्यक्ति सही नहीं है। From MSDN

आप किसी एक्सटेंशन प्रॉपर्टी, फ़ील्ड या ईवेंट को परिभाषित नहीं कर सकते हैं।

+1

सही। यह कभी समर्थित नहीं था। –

+1

VB.NET (संयुक्त राष्ट्र) यदि आप एक विधि है, जो भी विस्तार तरीकों के लिए काम करता है के खाली मानकों को छोड़ करने के लिए अनुमति की भाग्यशाली कार्यक्षमता है, तो आप एक विस्तार विधि लिख सकते हैं और एक विस्तार संपत्ति की तरह यह * देखो * सकता है। – vcsjones

0

MSDN (ड्राफ्ट) documentation दृश्य स्टूडियो 11 के लिए के अनुसार, विस्तार गुण वी.एस. 11 में उपलब्ध नहीं हैं (जैसे कि, .NET 4.5) या तो।

यह अजीब बात है हालांकि खोज कुछ उदाहरणों को फेंक देती है जहां ब्लॉगर्स इत्यादि, यह संभव है कि यह संभव है, जिसमें उनके ब्लॉग here पर एक लेख में आयुेंड शामिल है।

+0

वास्तव में यह बहुत अजीब है, मुझे आश्चर्य है कि वे क्या कर रहे हैं, अगर उन्हें लगता है कि यह विस्तार गुण है। – Terry

1

यह लगभग है। डैनियल Cazzulino से इस साफ चाल सीख लिया।

आप एक विस्तार विधि से एक प्रकार लौटाते हैं जो गुणों का खुलासा करता है। यह सी # है, लेकिन समझ में आता है।

public static class ListExtensions 
{ 
    // this extension method returns the type with properties 
    public static ListExtender<T> Extend<T>(this List<T> target) 
    { 
     //null check skipped 
     return new ListExtender<T>(target); 
    } 
} 

public sealed class ListExtender<T> 
{ 
    private List<T> _target; 

    // this is a pseudo extension property 
    public T First { get { return _target[0]; } } 

    public ListExtender(List<T> target) 
    { 
     _target = target; 
    } 
} 

इसके अलावा, उत्तर नहीं है।

संबंधित मुद्दे