view Implab/Safe.cs @ 51:2c332a9c64c0

Added methods for parameter checks
author cin
date Sat, 26 Apr 2014 23:36:00 +0400
parents dafaadca5b9f
children c0bf853aa04f
line wrap: on
line source

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace Implab
{
    public static class Safe
    {
        public static void ArgumentMatch(string param, string name, Regex rx) {
            if (rx == null)
                throw new ArgumentNullException("rx");
            if (!rx.IsMatch(param))
                throw new ArgumentException(String.Format("A prameter value must match {0}", rx), name);
        }

        public static void ArgumentNotEmpty(string param, string name) {
            if (String.IsNullOrEmpty(param))
                throw new ArgumentException("A parameter can't be empty", name);
        }

        public static void ArgumentNotNull(object param, string name) {
            if (param == null)
                throw new ArgumentNullException(name);
        }

        public static void Dispose<T>(T obj) where T : class
        {
            var disp = obj as IDisposable;
            if (disp != null)
                disp.Dispose();
        }
    }
}