जब आप विंडोज रनटाइम घटक बनाते हैं तो आपके घटक का उपयोग उन भाषाओं द्वारा किया जा सकता है जो प्रबंधित नहीं हैं, जैसे जावास्क्रिप्ट या सी ++। स्पष्ट रूप से उन भाषाओं को कोई उचित सिस्टम उत्पन्न करने का कोई अंदाज़ा नहीं है। डेटटाइम, यह एक विशिष्ट .NET प्रकार है।
ऐसे घटकों को केवल देशी WinRT प्रकारों का उपयोग करना चाहिए और अन्यथा WinRT में मौजूद प्रतिबंधों का पालन करना चाहिए। इस तरह के प्रतिबंध को आप गेट-गो से चलाएंगे कि WinRT कार्यान्वयन विरासत का समर्थन नहीं करता है। जिसके लिए आपको अपनी कक्षा मुहरबंद घोषित करने की आवश्यकता है।
मूल WinRT प्रकार .NET प्रकारों के विपरीत हैं। वास्तविक रनटाइम प्रकार जो किसी तारीख को संग्रहीत कर सकता है वह Windows है। फाउंडेशन। डेटटाइम। एक स्ट्रिंग वास्तव में एक हैस्ट्रिंग हैंडल है। एक सूची वास्तव में एक चौथाई है। आदि।
कहने की जरूरत नहीं है, अगर आपको वास्तव में उन देशी प्रकारों का उपयोग करना होगा तो आपका प्रोग्राम अब .NET प्रोग्राम जैसा नहीं होगा। और आप नहीं करते हैं, सीएलआर के .NET 4.5 संस्करण में भाषा प्रक्षेपण निर्मित है। कोड जो स्वचालित रूप से WinRT प्रकारों को उनके समकक्ष .NET प्रकारों में अनुवादित करता है। उस अनुवाद में कुछ मोटे किनारों हैं, कुछ प्रकारों को आसानी से प्रतिस्थापित नहीं किया जा सकता है। लेकिन उनमें से अधिकांश बहुमत बिना किसी मानचित्र के मानचित्र हैं।
सिस्टम। डेटटाइम एक ऐसा मोटा किनारा है। Windows.Foundation.DateTime की भाषा प्रक्षेपण System.DateTimeOffset है। तो बस इस तरह से अपनी विधि की घोषणा के द्वारा आपकी समस्या का समाधान:
public DateTimeOffset Calculate(DateTimeOffset dateTime) {
// etc..
}
ध्यान देने योग्य केवल एक अन्य बात यह है कि यह केवल सदस्यों अन्य कोड का उपयोग हो सकता है कि के लिए आवश्यक है। सार्वजनिक सदस्य
स्रोत
2012-12-08 16:00:44
यदि आप इसे सार्वजनिक से आंतरिक में बदलते हैं तो क्या होता है? –