Стоит, так будет удобнее и понятнее.
namespace TryEnum
{
enum DownloadType
{
Video, Audio, Custom, Unknown, Default
}
enum ForceIpProtocol
{
IPv4, IPv6
}
enum ProxyProtocol
{
HTTPS, HTTP, SOCKS4, SOCKS5
}
}
А использовать вот так:
А по поводу интерфейсов... Интерфейсы не должны быть вместо классов; класс реализует интерфейс (выглядит синтаксис как наследование
class ClassName : IClassName
, но это не совсем наследование, там немножко другая реализация). И интерфейс нужен в том случае, если нужно реализовать полиморфизм в коде и/или что бы упростить доступ к публичным полям в классах, которые реализуют этот интерфейс.
Например: у нас есть много классов с разными реализациями, но их всех объединяют одни и те же свойства (к приеру свойства public string Name ( get; set; ); public int Age( get; set; ); и тд...). Интерфейс в данном случае нужен для того, что бы через него мы получали доступ ко множественному поведению, при помощи разных классов, содержащих одноименные свойства, не плодя при этом код.
Для наглядности:
у нас есть метод Create(); в котором мы хотим создавать новых людей
static void Create()
{
// empty...
}
Есть разные классы, которые создают Human и реализуют интерфейс IHuman
class SimpleHuman : IHuman
{
public string Name { get; set; }
public int Age { get; set; }
public SimpleHuman()
{
Name = "Generic human...";
Age = 20;
}
public SimpleHuman(string name) : this()
{
Name = name;
}
public SimpleHuman(string name, int age) : this()
{
Name = name;
Age = age;
}
}
class CoolHuman : IHuman
{
public string Name { get; set; }
public int Age { get; set; }
public CoolHuman()
{
Name = "BOB!";
Age = 20;
}
public CoolHuman(string name) : this()
{
Name = name;
}
public CoolHuman(string name, int age) : this()
{
Name = name;
Age = age;
}
}
interface IHuman
{
string Name { get; set; }
int Age { get; set; }
}
И теперь, благодаря реализации интерфейса в этих классах мы можем удобно использовать этот самый интерфейс, например:
class Create
{
public IHuman Human { get; set; }
public Create()
{
Human = new CoolHuman();
}
public void Hello()
{
Console.WriteLine("Hello, {0}. Today you are {1} years old", Human.Name, Human.Age);
}
}
Конкретно в вашем случае интерфес не нужен.