C# Checking if Object is Null

  • A+
Category:Languages

I am having trouble with an if statement for checking if an object is null.

I have a webClient go and pull a JSON string from a website in a try/catch. If it errors, it is because the 3 digit country does not exist in the API and I just want to skip it.

Here is my code:

    System.Net.WebClient wc = new System.Net.WebClient();      RootObject ro;     try     {         string resp = wc.DownloadString("https://restcountries.eu/rest/v2/alpha/" + Row.Code.ToString());          JavaScriptSerializer js = new JavaScriptSerializer();          ro = js.Deserialize<RootObject>(resp);     }     catch (Exception e)     { }      if (ro.Region != null)     {         Row.Region = ro.Region;         Row.SubRegion = ro.Subregion;     } 

RootObject is a class to deserialize to. This works fine.

However, I am getting an error in the if statement that "use of unassigned class 'ro'.

Can someone help me fix this? ro works as expected inside the if?

I have also tried checking a specific node and it is still getting hung up on the 'ro' part.

Also, this is a script component in SSIS.

Thanks

 


  1. It is possible that the try block will never assign a value to ro and thus it will be unassigned outside of try block. To fix that, assign a value:

    RootObject ro = null; 
  2. Since ro could be null, you need to check for that in your if statement before you try to access a member:

    if (ro != null && ro.Region != null) {     Row.Region = ro.Region;     Row.SubRegion = ro.Subregion; } 

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: