2013-02-11 26 views
8

में किसी कक्षा में ऋणात्मक ऑपरेटर (?) जोड़ें, मैं यहां सही शब्द का उपयोग नहीं कर रहा हूं और यही कारण है कि मुझे अपना जवाब नहीं मिल रहा है।सी #

myMethod(myClass, -myClass);

आप कोड उदाहरण की जरूरत है मुझे मदद करने के लिए: मेरी कक्षा में ऑपरेटर, लेकिन मैं एक नकारात्मक ऑपरेटर जोड़ना चाहते हैं ... मैं मूल रूप से क्या यह करने के लिए सक्षम होने के लिए - मैं एक + & है मुझे बताएं, लेकिन मुझे लगता है कि यह बहुत आगे बढ़ना चाहिए ... या यह नहीं किया जा सकता है।

+2

यह नकारात्मक ऑपरेटर क्या करना चाहिए? –

+0

क्या आप [तार्किक अस्वीकरण ऑपरेटर '!'] (Http://msdn.microsoft.com/en-us/library/f2kd6eb2 (v = vs.110) .aspx) के बारे में सोच रहे हैं? –

+7

यदि आप यूनरी माइनस ऑपरेटर को ओवरलोड कर रहे हैं तो यह यूनरी प्लस ऑपरेटर को ओवरलोड करने के लिए भी एक अच्छा अभ्यास होगा। यह दुनिया का सबसे बेकार ऑपरेटर है, मुझे पता है, लेकिन यह '-फू' और '+ foo' नहीं कहने में भी अजीब है। –

उत्तर

23

ज़रूर, एकल - ऑपरेटर is overloadable:

public static MyClass operator -(MyClass myClass) 
{ 
    ... 
} 

सावधान इन सुविधाओं का दुरुपयोग करने के लिए नहीं हो सकता है के रूप में उपभोक्ताओं इन ऑपरेटरों के शब्दों से अनजान हो सकता है - तरीकों के विपरीत (जो अच्छी तरह से रखा जा सकता है), यह अक्सर एक स्पष्ट रूप से स्पष्ट नहीं होता है कि एक प्रकार का कस्टम ऑपरेटर क्या करता है। उम्मीद है कि, आपकी कक्षा किसी प्रकार या समान के वेक्टर का प्रतिनिधित्व करती है?

+2

मुझे इसे मारो! :) – MrLeap

+1

बहुत बढ़िया ... लेकिन अब मुझे गूंगा लगता है। मुझे यह पता लगाना चाहिए था; केवल 1 पैरामीटर के साथ ऑपरेटर बनाने के बारे में भी नहीं सोचा था। धन्यवाद! –

+0

मुझे भी मारो :( –

4
public static YourClass operator -(YourClass value) 
{ 
}