c# - Create implicit cast for enum value -
i've created own messagebox own enum messageboxbutton :
public enum mymessageboxbutton {     ok = messageboxbutton.ok,     okcancel = messageboxbutton.okcancel,     yesnocancel = messageboxbutton.yesnocancel,     yesno = messageboxbutton.yesno,     nowlatercancel = 5, } as can see, it's system.windows.messageboxbutton 1 value more.
for class mymessagebox, have function :
public static messageboxresult show(string caption, string message, mymessageboxbutton button, messageboximage icon) {     ... } is there way call show messageboxbutton , implicitly cast value mymessageboxbutton ?
you can create converter method converts messageboxbuttons mymessageboxbutton, create overload of show method takes messageboxbuttons, , in method conversion , call existing show method.
since don't have matching enum values items (like abortretryignore), have decide button combination show if selects 1 of those:
public static mymessageboxbutton converttomymessageboxbutton(messageboxbuttons input) {     mymessageboxbutton result;      switch (input)     {         case messageboxbuttons.ok:             result = mymessageboxbutton.ok;             break;         case messageboxbuttons.okcancel:             result = mymessageboxbutton.okcancel;             break;         case messageboxbuttons.retrycancel:             result = mymessageboxbutton.nowlatercancel;             break;         case messageboxbuttons.yesno:             result = mymessageboxbutton.yesno;             break;         case messageboxbuttons.yesnocancel:             result = mymessageboxbutton.yesnocancel;             break;         default:             // abortretryignore fall through             result = mymessageboxbutton.okcancel;             break;     }      return result; } then use convert method in overload of show method, conversion , call original show:
public static messageboxresult show(string caption, string message,      messageboxbuttons button, messageboximage icon) {     return show(caption, message, converttomymessageboxbutton(button), icon); } 
Comments
Post a Comment