diff --git a/src/Discord.Net.Net45/Discord.Net.csproj b/src/Discord.Net.Net45/Discord.Net.csproj
index ae77302da..9447f3985 100644
--- a/src/Discord.Net.Net45/Discord.Net.csproj
+++ b/src/Discord.Net.Net45/Discord.Net.csproj
@@ -88,8 +88,8 @@
API\Enums\PermissionTarget.cs
-
- API\Enums\Regions.cs
+
+ API\Enums\Region.cs
API\Enums\StringEnum.cs
diff --git a/src/Discord.Net/API/Enums/ChannelType.cs b/src/Discord.Net/API/Enums/ChannelType.cs
index 066d12565..7d787ae67 100644
--- a/src/Discord.Net/API/Enums/ChannelType.cs
+++ b/src/Discord.Net/API/Enums/ChannelType.cs
@@ -24,5 +24,11 @@
return new ChannelType(value);
}
}
+
+ public static implicit operator ChannelType(string value) => FromString(value);
+ public static bool operator ==(ChannelType a, ChannelType b) => a?._value == b?._value;
+ public static bool operator !=(ChannelType a, ChannelType b) => a?._value != b?._value;
+ public override bool Equals(object obj) => (obj as ChannelType)?._value == _value;
+ public override int GetHashCode() => _value.GetHashCode();
}
}
diff --git a/src/Discord.Net/API/Enums/PermissionTarget.cs b/src/Discord.Net/API/Enums/PermissionTarget.cs
index 28427f247..d501dc72b 100644
--- a/src/Discord.Net/API/Enums/PermissionTarget.cs
+++ b/src/Discord.Net/API/Enums/PermissionTarget.cs
@@ -24,5 +24,11 @@
return new PermissionTarget(value);
}
}
+
+ public static implicit operator PermissionTarget(string value) => FromString(value);
+ public static bool operator ==(PermissionTarget a, PermissionTarget b) => a?._value == b?._value;
+ public static bool operator !=(PermissionTarget a, PermissionTarget b) => a?._value != b?._value;
+ public override bool Equals(object obj) => (obj as PermissionTarget)?._value == _value;
+ public override int GetHashCode() => _value.GetHashCode();
}
}
diff --git a/src/Discord.Net/API/Enums/Regions.cs b/src/Discord.Net/API/Enums/Region.cs
similarity index 71%
rename from src/Discord.Net/API/Enums/Regions.cs
rename to src/Discord.Net/API/Enums/Region.cs
index 505778ad5..090f7cbda 100644
--- a/src/Discord.Net/API/Enums/Regions.cs
+++ b/src/Discord.Net/API/Enums/Region.cs
@@ -34,5 +34,11 @@
return new Region(value);
}
}
+
+ public static implicit operator Region(string value) => FromString(value);
+ public static bool operator ==(Region a, Region b) => a?._value == b?._value;
+ public static bool operator !=(Region a, Region b) => a?._value != b?._value;
+ public override bool Equals(object obj) => (obj as Region)?._value == _value;
+ public override int GetHashCode() => _value.GetHashCode();
}
}
diff --git a/src/Discord.Net/API/Enums/StringEnum.cs b/src/Discord.Net/API/Enums/StringEnum.cs
index 88a527dd2..98cf70e0e 100644
--- a/src/Discord.Net/API/Enums/StringEnum.cs
+++ b/src/Discord.Net/API/Enums/StringEnum.cs
@@ -2,7 +2,7 @@
{
public abstract class StringEnum
{
- private string _value;
+ protected string _value;
protected StringEnum(string value)
{
_value = value;
@@ -10,43 +10,5 @@
public string Value => _value;
public override string ToString() => _value;
-
- public override bool Equals(object obj)
- {
- var enum2 = obj as StringEnum;
- if (enum2 == (StringEnum)null)
- return false;
- else
- return _value == enum2._value;
- }
- public override int GetHashCode()
- {
- return _value.GetHashCode();
- }
-
- public static bool operator ==(StringEnum a, StringEnum b)
- {
- return a?._value == b?._value;
- }
- public static bool operator !=(StringEnum a, StringEnum b)
- {
- return a?._value != b?._value;
- }
- public static bool operator ==(StringEnum a, string b)
- {
- return a?._value == b;
- }
- public static bool operator !=(StringEnum a, string b)
- {
- return a?._value != b;
- }
- public static bool operator ==(string a, StringEnum b)
- {
- return a == b?._value;
- }
- public static bool operator !=(string a, StringEnum b)
- {
- return a != b?._value;
- }
}
}
diff --git a/src/Discord.Net/API/Enums/UserStatus.cs b/src/Discord.Net/API/Enums/UserStatus.cs
index 493c9ec50..367a796a0 100644
--- a/src/Discord.Net/API/Enums/UserStatus.cs
+++ b/src/Discord.Net/API/Enums/UserStatus.cs
@@ -28,5 +28,11 @@
return new UserStatus(value);
}
}
+
+ public static implicit operator UserStatus(string value) => FromString(value);
+ public static bool operator ==(UserStatus a, UserStatus b) => a?._value == b?._value;
+ public static bool operator !=(UserStatus a, UserStatus b) => a?._value != b?._value;
+ public override bool Equals(object obj) => (obj as UserStatus)?._value == _value;
+ public override int GetHashCode() => _value.GetHashCode();
}
}
diff --git a/src/Discord.Net/DiscordClient.Channels.cs b/src/Discord.Net/DiscordClient.Channels.cs
index 2f3462d22..beef45a35 100644
--- a/src/Discord.Net/DiscordClient.Channels.cs
+++ b/src/Discord.Net/DiscordClient.Channels.cs
@@ -98,14 +98,14 @@ namespace Discord
if (channel != null)
query = query.Concat(new Channel[] { channel });
}
- else if (name[0] == '#' && (type == (ChannelType)null || type == ChannelType.Text)) //If we somehow get text starting with # but isn't a mention
+ else if (name[0] == '#' && (type == null || type == ChannelType.Text)) //If we somehow get text starting with # but isn't a mention
{
string name2 = name.Substring(1);
query = query.Concat(server.TextChannels.Where(x => string.Equals(x.Name, name2, StringComparison.OrdinalIgnoreCase)));
}
}
- if (type != (string)null)
+ if (type != null)
query = query.Where(x => x.Type == type);
return query;
}
@@ -115,7 +115,7 @@ namespace Discord
{
if (server == null) throw new ArgumentNullException(nameof(server));
if (name == null) throw new ArgumentNullException(nameof(name));
- if (type == (string)null) throw new ArgumentNullException(nameof(type));
+ if (type == null) throw new ArgumentNullException(nameof(type));
CheckReady();
var response = await _api.CreateChannel(server.Id, name, type.Value).ConfigureAwait(false);
diff --git a/src/Discord.Net/DiscordClient.Servers.cs b/src/Discord.Net/DiscordClient.Servers.cs
index ff66948f4..2066be5b7 100644
--- a/src/Discord.Net/DiscordClient.Servers.cs
+++ b/src/Discord.Net/DiscordClient.Servers.cs
@@ -84,7 +84,7 @@ namespace Discord
public async Task CreateServer(string name, Region region)
{
if (name == null) throw new ArgumentNullException(nameof(name));
- if (region == (string)null) throw new ArgumentNullException(nameof(region));
+ if (region == null) throw new ArgumentNullException(nameof(region));
CheckReady();
var response = await _api.CreateServer(name, region.Value).ConfigureAwait(false);
diff --git a/src/Discord.Net/DiscordClient.Users.cs b/src/Discord.Net/DiscordClient.Users.cs
index ed4e048e7..aa7e931b1 100644
--- a/src/Discord.Net/DiscordClient.Users.cs
+++ b/src/Discord.Net/DiscordClient.Users.cs
@@ -250,7 +250,7 @@ namespace Discord
public Task SetStatus(UserStatus status)
{
- if (status == (string)null) throw new ArgumentNullException(nameof(status));
+ if (status == null) throw new ArgumentNullException(nameof(status));
if (status != UserStatus.Online && status != UserStatus.Idle)
throw new ArgumentException($"Invalid status, must be {UserStatus.Online} or {UserStatus.Idle}", nameof(status));
CheckReady();