Overriding the Defaults in a struct (c#)

前端 未结 12 994
感情败类
感情败类 2021-01-04 00:47

Is it possible to set or override the default state for a structure?

As an example I have an

enum something{a,b,c,d,e};

and a struc

12条回答
  •  半阙折子戏
    2021-01-04 01:36

    My solution. It works as well.

    public struct DisplayOptions
    {
        public bool isUpon;
        public bool screenFade;
    
        public static DisplayOptions Build()
        {
            // Return default value
            return new DisplayOptions(true, true);
        }
    
        DisplayOptions(bool isUpon, bool screenFade)
        {
            this.isUpon = isUpon;
            this.screenFade = screenFade;
        }
    
        public DisplayOptions SetUpon(bool upon)
        {
            this.isUpon = upon;
            return this;
        }
    
        public DisplayOptions SetScreenFade(bool screenFade)
        {
            this.screenFade = screenFade;
            return this;
        }
    }
    

    Use default value

            // Use default
            UIMaster.Instance.StartScreen("Screen 2", DisplayOptions.Build());
            // Use custome
            UIMaster.Instance.StartScreen("Screen 2", DisplayOptions.Build().SetScreenFade(false));
            UIMaster.Instance.StartScreen("Screen 2", DisplayOptions.Build().SetUpon(false));
    

提交回复
热议问题