MATLAB 2008a में, क्या विधि विधि को सार्वजनिक किए बिना क्लास विधि को यूकंट्रोल कॉलबैक फ़ंक्शन के रूप में कार्य करने की अनुमति देने का कोई तरीका है? संकल्पनात्मक रूप से, विधि सार्वजनिक नहीं होनी चाहिए क्योंकि इसे कक्षा के उपयोगकर्ता द्वारा कभी नहीं बुलाया जाना चाहिए। इसे कॉलबैक ट्रिगर करने वाले यूआई ईवेंट के परिणामस्वरूप ही कहा जाना चाहिए। हालांकि, अगर मैंने विधि या निजी या संरक्षित पहुंच को सेट किया है, तो कॉलबैक काम नहीं करता है। मेरी कक्षा hgsetget से ली गई है और 2008a क्लासडेफ़ सिंटैक्स का उपयोग करके परिभाषित किया गया है।MATLAB में, क्या क्लास विधि सार्वजनिक होने के बिना यूकंट्रोल कॉलबैक के रूप में कार्य कर सकती है?
methods (Access = public)
function this = MyClass(args)
this.someClassProperty = uicontrol(property1, value1, ... , 'Callback', ...
{@(src, event)myCallbackMethod(this, src, event)});
% the rest of the class constructor code
end
end
कॉलबैक कोड लगता है:
methods (Access = private) % This doesn't work because it's private
% It works just fine if I make it public instead, but that's wrong conceptually.
function myCallbackMethod(this, src, event)
% do something
end
end