.net - C# Compiler - Unassigned DateTime Field and Local Variable -
out of curiosity:
this code valid , executes:
public class program { private static datetime date; public static void main() { console.writeline(date.tostring("o")); } }
see working on .net fiddle
but doesn´t compile (unassigned local variable):
public class program { public static void main() { datetime date; console.writeline(date.tostring("o")); } }
see (not) working on .net fiddle
datetime non nullable value type, doesn´t need assigned , initialized have value, has default one.
so why compiler allows datetime field version compile , doesn´t let local variable version compile? when code compiled il, prevents value type local variable being used?
a field has no explicit initialisation automatically initialised default value.
this useful it's common initial value, saves time.
a local has no initialisation in state can not used.
this useful because did wrong (especially if there several paths determine initial value), setting default hide bug.
Comments
Post a Comment