using static System.Math;
using Env = System.Environment;
public static void Main()
Console.WriteLine("Measurement with Parameterless Constrcutor");
var m1 = new Measurement();
var m2 = default(Measurement);
var m3 = new Measurement[2];
Console.WriteLine(string.Join(", ", m3));
Console.WriteLine("Measurement Without Explicit Constructor and Auto Initializer");
var mwoc1 = new MeasurementWithoutConstructor();
Console.WriteLine(mwoc1);
var mwoc2 = default(MeasurementWithoutConstructor);
Console.WriteLine(mwoc2);
Console.WriteLine("Measurement With Explicit Constructor and Auto Initializer");
var mwc1 = new MeasurementWithConstructor();
var mwc2 = new MeasurementWithConstructor(5);
var mwc3 = default(MeasurementWithConstructor);
public struct Measurement
public double Value {get; set;}
public string Description {get; set;}
Description = "Measurment";
public override string ToString() => $"Value: {Value}, Description: ({Description})";
public struct MeasurementWithoutConstructor
public double Value {get; set;}
public string Description {get; init;} = "Measurement";
public override string ToString() => $"Value: {Value}, Description: ({Description})";
public struct MeasurementWithConstructor
public double Value {get; set;}
public string Description {get; init;} = "Measurement";
public MeasurementWithConstructor() {
public MeasurementWithConstructor(double value) {
public override string ToString() => $"Value: {Value}, Description: ({Description})";