Simplify code in DiscordComparers (#1713)
This commit is contained in:
@@ -11,29 +11,23 @@ namespace Discord
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare users.
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare users.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static IEqualityComparer<IUser> UserComparer => _userComparer ??= new EntityEqualityComparer<IUser, ulong>();
|
public static IEqualityComparer<IUser> UserComparer { get; } = new EntityEqualityComparer<IUser, ulong>();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare guilds.
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare guilds.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static IEqualityComparer<IGuild> GuildComparer => _guildComparer ??= new EntityEqualityComparer<IGuild, ulong>();
|
public static IEqualityComparer<IGuild> GuildComparer { get; } = new EntityEqualityComparer<IGuild, ulong>();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare channels.
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare channels.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static IEqualityComparer<IChannel> ChannelComparer => _channelComparer ??= new EntityEqualityComparer<IChannel, ulong>();
|
public static IEqualityComparer<IChannel> ChannelComparer { get; } = new EntityEqualityComparer<IChannel, ulong>();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare roles.
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare roles.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static IEqualityComparer<IRole> RoleComparer => _roleComparer ??= new EntityEqualityComparer<IRole, ulong>();
|
public static IEqualityComparer<IRole> RoleComparer { get; } = new EntityEqualityComparer<IRole, ulong>();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare messages.
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare messages.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static IEqualityComparer<IMessage> MessageComparer => _messageComparer ??= new EntityEqualityComparer<IMessage, ulong>();
|
public static IEqualityComparer<IMessage> MessageComparer { get; } = new EntityEqualityComparer<IMessage, ulong>();
|
||||||
|
|
||||||
private static IEqualityComparer<IUser> _userComparer;
|
|
||||||
private static IEqualityComparer<IGuild> _guildComparer;
|
|
||||||
private static IEqualityComparer<IChannel> _channelComparer;
|
|
||||||
private static IEqualityComparer<IRole> _roleComparer;
|
|
||||||
private static IEqualityComparer<IMessage> _messageComparer;
|
|
||||||
|
|
||||||
private sealed class EntityEqualityComparer<TEntity, TId> : EqualityComparer<TEntity>
|
private sealed class EntityEqualityComparer<TEntity, TId> : EqualityComparer<TEntity>
|
||||||
where TEntity : IEntity<TId>
|
where TEntity : IEntity<TId>
|
||||||
@@ -46,7 +40,7 @@ namespace Discord
|
|||||||
(null, null) => true,
|
(null, null) => true,
|
||||||
(null, _) => false,
|
(null, _) => false,
|
||||||
(_, null) => false,
|
(_, null) => false,
|
||||||
var (l, r) => l.Id.Equals(r.Id)
|
_ => x.Id.Equals(y.Id)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user