Small .NET optimizations

This commit is contained in:
2025-02-03 22:29:42 +01:00
parent 9270f49519
commit 980dab22f3
7 changed files with 45 additions and 36 deletions

View File

@@ -65,8 +65,12 @@ namespace AMWD.Protocols.Modbus.Tcp
get => _readTimeout;
set
{
#if NET8_0_OR_GREATER
ArgumentOutOfRangeException.ThrowIfLessThan(value, TimeSpan.Zero);
#else
if (value < TimeSpan.Zero)
throw new ArgumentOutOfRangeException(nameof(value));
#endif
_readTimeout = value;
@@ -81,8 +85,12 @@ namespace AMWD.Protocols.Modbus.Tcp
get => _writeTimeout;
set
{
#if NET8_0_OR_GREATER
ArgumentOutOfRangeException.ThrowIfLessThan(value, TimeSpan.Zero);
#else
if (value < TimeSpan.Zero)
throw new ArgumentOutOfRangeException(nameof(value));
#endif
_writeTimeout = value;
@@ -376,10 +384,9 @@ namespace AMWD.Protocols.Modbus.Tcp
try
{
return Dns.GetHostAddresses(hostname)
return [.. Dns.GetHostAddresses(hostname)
.Where(a => a.AddressFamily == AddressFamily.InterNetwork || a.AddressFamily == AddressFamily.InterNetworkV6)
.OrderBy(a => a.AddressFamily) // prefer IPv4
.ToArray();
.OrderBy(a => a.AddressFamily)]; // prefer IPv4
}
catch
{

View File

@@ -1,15 +1,13 @@
using System.Net;
using System.Net.Sockets;
namespace AMWD.Protocols.Modbus.Tcp.Utils
{
internal class IPEndPointWrapper
/// <inheritdoc cref="IPEndPoint" />
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
internal class IPEndPointWrapper(EndPoint endPoint)
{
private IPEndPoint _ipEndPoint;
public IPEndPointWrapper(EndPoint endPoint)
{
_ipEndPoint = (IPEndPoint)endPoint;
}
private readonly IPEndPoint _ipEndPoint = (IPEndPoint)endPoint;
#region Properties

View File

@@ -8,14 +8,9 @@ namespace AMWD.Protocols.Modbus.Tcp.Utils
{
/// <inheritdoc cref="NetworkStream" />
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
internal class NetworkStreamWrapper : IDisposable
internal class NetworkStreamWrapper(NetworkStream stream) : IDisposable
{
private readonly NetworkStream _stream;
public NetworkStreamWrapper(NetworkStream stream)
{
_stream = stream;
}
private readonly NetworkStream _stream = stream;
/// <inheritdoc cref="NetworkStream.Dispose" />
public virtual void Dispose()

View File

@@ -3,14 +3,11 @@ using System.Net.Sockets;
namespace AMWD.Protocols.Modbus.Tcp.Utils
{
internal class SocketWrapper : IDisposable
/// <inheritdoc cref="Socket" />
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
internal class SocketWrapper(Socket socket) : IDisposable
{
private Socket _socket;
public SocketWrapper(Socket socket)
{
_socket = socket;
}
private readonly Socket _socket = socket;
/// <inheritdoc cref="Socket.DualMode" />
public virtual bool DualMode

View File

@@ -6,22 +6,18 @@ using System.Threading.Tasks;
namespace AMWD.Protocols.Modbus.Tcp.Utils
{
/// <inheritdoc cref="TcpListener" />
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
internal class TcpListenerWrapper : IDisposable
internal class TcpListenerWrapper(IPAddress localaddr, int port) : IDisposable
{
#region Fields
private TcpListener _tcpListener;
private readonly TcpListener _tcpListener = new(localaddr, port);
#endregion Fields
#region Constructor
public TcpListenerWrapper(IPAddress localaddr, int port)
{
_tcpListener = new TcpListener(localaddr, port);
}
#endregion Constructor
#region Properties