Check null variables

I have several variables that I set before creating the object, I want to check if any of these variables are indicated at zero if any variable displays an error. Is there a way to include this in a foreach loop?

For instance,

Var Var1 = blah1;
Var Var2 = blah2;
Var Var3 = blah3;
Var Var4 = blah4;
Var Var5 = blah5;

foreach(var above, if any is null)
Errmessage

Thanks in advance

+5
source share
10 answers

I personally would have separate checks for each variable. An โ€œerror messageโ€ for multiple validation checks is a bad idea.

, ArgumentNullException, . . , , , .

, :

var Var1 = blah1;
var Var2 = blah2;
var Var3 = blah3;
var Var4 = blah4;
var Var5 = blah5;

if ( (new object[] {Var1, Var2, Var3, Var4, Var5}).Any(v => v==null))
    throw new Exception("Your error here");
+15

IEnumerable,

foreach(var v in new object[] { var1, var2, .... }){
 if(v == null) {
   Errmessage...
 }
}
+4

object :

List<object> list = new List<object>();
list.add(Var1);
list.add(Var2);
// etc.

foreach(object obj in list)
{
    if(obj == null) //message
}
+3

, :

var dict = new Dictionary<string, object>();

dict["var1"] = blah1;
// etc.

foreach(var value in dict.Values)
{
    if(value == null)
        throw new Exception(errorMessage);
}
+1

- , :

List<object> objects = new ....;

Var Var1 = blah1;  objects.add(Var1)...
Var Var2 = blah2;  ...
Var Var3 = blah3;  ...
Var Var4 = blah4;  ...
Var Var5 = blah5;  ...

foreach(var objRef, in objects)
    if( objRef == null )
       Errmessage; break ?
+1

, , :

using System.Reflection;

class MyClass{
    var Var1;
    var Var2;
    ...
    var infos = typeof(MyClass).GetFields();
    foreach(var info in infos)
    {
        if(info.GetValue(this)==null) ShowErrorMessage(info.Name);
    }
}

note: GetFields GetMembers GetProperties...

+1

. , .

0

" ", ( TypeExtensions)

public static class NotAssigned {
    public static bool AnyOf( params object[] Objects){
        foreach (var o in Objects)
            if (o == null)
                return true;
        return false;
    }
}

Var Var1 = blah1;
Var Var2 = blah2;
if (NotAssigned.AnyOf( blah1, blah2))
    throw new Exception

AllOff, , , "" AnyOf AllOf.

NotAssigned.AnyOf

0

params :

    public static void ThrowIfNull(params object[] input)
    {
        foreach (var item in input)
        {
            //Your choice of how you want to handle this. I chose an exception.
            throw new NullReferenceException();
        }
    }

:

    int? nullableInt = null;
    string someNullString = null;

    ThrowIfNull(nullableInt, someNullString);

. , IEnumerable:

public static class NullExtensionMethods
{
    public static void ThrowIfHasNull<T>(this IEnumerable collection)
        where T : Exception, new()
    {
        foreach (var item in collection)
        {
            if (item == null)
            {
                throw new T();
            }
        }
    }

    public static void ThrowIfHasNull(this IEnumerable collection)
    {
        ThrowIfHasNull<NullReferenceException>(collection);
    }
}

:

 string someNullString = null;
 new string[] { someNullString }.ThrowIfHasNull();

 //or for context specific exceptions

 new string[] { someNullString }.ThrowIfHasNull<ArgumentNullException>();

, . :

public static class NullExtensionMethods
{
    public static bool HasNull(this IEnumerable collection)
    {
        foreach (var item in collection)
        {
            if (item == null)
            {
                return true;
            }
        }

        return false;
    }
}

:

var nullDetected = new string[] { someNullString }.HasNull();

, , . , , String.IsNullOrEmpty. HasNullOrEmpty:

    public static bool HasNullOrEmpty(this IEnumerable<string> collection)
    {
        foreach (var item in collection)
        {
            if (string.IsNullOrEmpty(item))
            {
                return true;
            }
        }

        return false;
    }

, IEnumerable<string>

0

, box unbox object.

ref ,

Useage:

void Bala(Guid? id, int? type){
    if (NullableChecker.AnyIsNull(id, type)){
        //Do your stuff
    }
}

T4

internal static class NullableChecker
{
    public static bool AnyIsNull<T>(T? value) where T : struct
    {
        return false == value.HasValue;
    }

    public static bool AnyIsNull<T1, T2>(T1? value1, T2? value2) where T1 : struct where T2 : struct
    {
        return false == value1.HasValue || false == value2.HasValue;
    }

    public static bool AnyIsNull<T1, T2, T3>(T1? value1, T2? value2, T3? value3) where T1 : struct where T2 : struct where T3 : struct
    {
        return false == value1.HasValue || false == value2.HasValue || false == value3.HasValue;
    }

    public static bool AnyIsNull<T1, T2, T3, T4>(T1? value1, T2? value2, T3? value3, T4? value4) where T1 : struct where T2 : struct where T3 : struct where T4 : struct
    {
        return false == value1.HasValue || false == value2.HasValue || false == value3.HasValue || false == value4.HasValue;
    }
}
0
source

All Articles