User Rating: 4 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Inactive
 

C# handles NULL quite different than PowerScript and SQL.
Same code in PowerScript and C# may have different outcome.

 

 

Welcome to a set of examples showing you how C# handles NULL different than PowerScript.
In fact so different that same code can have completely different outcome.

 

Example 1 : Boolean Data Types

C# by default defines the Boolean data type without NULL.
You can opt-in NULL using the nullable operator (question mark).

  PowerScript C# C#
Data type Boolean bool bool?
Possible values true, false, null true, false true, false, null

 

Example 2 : Conditional Expressions

C# evaluates conditional expressions to its not-NULL Boolean type.
Conditional expressions in C# therefore often have different value than in PowerScript.
Adding null to the Boolean data type has no impact.

PowerScript Syntax Boolean result
  vs.   C# Syntax bool result
bool? result
result = (null > 42) null   result = (null > 42) false false
result = (null <> 42) null   result = (null != 42) true true
result = (null = null) null   result = (null == null) true true
result = (null <> null) null   result = (null != null) false false

 

Example 3 : Equality in IF, DO, and WHILE statements

Check for equality in IF, DO, and WHILE statements has different behavior in C# when comparing to NULL values.

 Name1   Name2  PowerScript C#
   
if (Name1 = Name2) then
   result = "NORTH"
else
   result = "South"
end if
if (Name1 == Name2)
   result = "NORTH";
else
   result = "South";

null null result = "South" result = "NORTH"
null "Mick" result = "South" result = "South"

 

Example 4 : Inequality in IF, DO, and WHILE statements

Similar differences exist when checking for inequality.

 

 Name1   Name2  PowerScript C#
   
if (Name1 <> Name2) then
   result = "NORTH"
else
   result = "South"
end if​
if (Name1 != Name2)
   result = "NORTH";
else
   result = "South";

null null result = "South" result = "South"
null "Mick" result = "South" result = "NORTH"

 

Example 5 : Check for NULL

Syntax for NULL is very different in C# though easy to read and type.

Check PowerScript C#
name IS NULL
if IsNull(name) then ...
if (name == null) ...
name IS NOT NULL
if not IsNull(name) then ...​
if (name != null) ...

 


Conclusion 

"Mind your step!" as you cross between PowerScript + SQL on one side and C# on the other side!

NULL handling is so different in C# that same code sometimes results in completely different outcomes.
Notice in DO and WHILE loops, difference may result in endless loops!

Comments (0)

There are no comments posted here yet