Enum を初めてコードに実装しようとしています。次のような単純なカスタム クラスがあります。
public class Application
{
//Properties
public string AppID { get; set; }
public string AppName { get; set; }
public string AppVer { get; set; }
public enum AppInstallType { msi, exe }
public string AppInstallArgs { get; set; }
public string AppInstallerLocation { get; set; }
}
そのクラス内に、次のような Install() というメソッドがあります。
public void Install()
{
if (AppInstallType.exe)
{
ProcessStartInfo procInfo = new ProcessStartInfo("cmd.exe");
procInfo.Arguments = "/c msiexec.exe /i " + AppInstallerLocation + " " + AppInstallArgs; ;
procInfo.WindowStyle = ProcessWindowStyle.Normal;
Process proc = Process.Start(procInfo);
proc.WaitForExit();
}
else
{
ProcessStartInfo procInfo = new ProcessStartInfo("cmd.exe");
procInfo.Arguments = "/c " + AppInstallerLocation + " " + AppInstallArgs;
procInfo.WindowStyle = ProcessWindowStyle.Normal;
Process proc = Process.Start(procInfo);
proc.WaitForExit();
}
}
AppInstallType が文字列の場合、Install メソッドの先頭にある If ステートメントは正常に機能しました (AppInstallType = "msi")。AppInstallType を Enum に変更したとき、if ステートメントの構文を理解できないようです。
可能であれば、Install() メソッドにパラメーターを渡す必要は避けたいと思います。次のように、Application オブジェクトで Install() メソッドを呼び出すだけでアプリをインストールできると便利です。
Application app1 = new Application;
app1.AppInstallType = msi;
app1.Install();
これについてどうすればいいですか?前もって感謝します。