I would use the new switch syntax that was introduced in c#8. It removes the need for if, then, else
statements and gives good separation of concerns. The method of choosing is separate to the result of the choice. Something like this.
public static void CalculateDiscount(int DisType, int Disvalue)
{
DiscountMode discountMode = (DiscountMode)DisType;
double discountedAmount = discountMode switch
{
DiscountMode.Amount => CalculateDiscountPercent(Disvalue),
DiscountMode.Percentage => CalculateDiscountPercent(Disvalue),
DiscountMode.SplDiscount => CalculateDiscountFull(Disvalue),
DiscountMode.FullDiscount => CalculateDiscountFull(Disvalue),
DiscountMode.NoInput => CalculateDiscountNoInput(Disvalue),
_ => throw new ArgumentException(message: "Invalid enum value",
paramName: nameof(discountMode))
};
}
private static double CalculateDiscountPercent(int disValue)
{
return disValue * 0.9;
}