import System;

//Ilustracja mapowania typów JScript do typów CTS
var NumericVal : Number;
var StringVal : String;
var BoolVal : Boolean;
var DateVal : Object;

//Przypisanie wartości...
NumericVal = 100;
StringVal = "JScript .NET Programming";
DateVal = new Date(2001,01,01,00,00,00,00);

Console.WriteLine("Number : typ JScript = {0}, typ JScript .NET = {1}",typeof(NumericVal),NumericVal.GetType());

Console.WriteLine("String : typ JScript = {0}, typ JScript .NET = {1}",typeof(StringVal),StringVal.GetType());

Console.WriteLine("Boolean : typ JScript = {0}, typ JScript .NET = {1}",typeof(BoolVal),BoolVal.GetType());

Console.WriteLine("Date : typ JScript = {0}, typ JScript .NET = {1}",typeof(DateVal),DateVal.GetType());

//Typy JScript .NET
var byteVal : Byte;
var singleVal : Single;
var Int32Val : Int32;
var Int64Val : Int64;
var decimalVal : Decimal;

Console.WriteLine("Byte : typ JScript = {0}, typ JScript .NET = {1}",typeof(byteVal),byteVal.GetType());

Console.WriteLine("Single : typ JScript = {0}, typ JScript .NET = {1}",typeof(singleVal),singleVal.GetType());

Console.WriteLine("Int32 : typ JScript = {0}, typ JScript .NET = {1}",typeof(Int32Val),Int32Val.GetType());

Console.WriteLine("Int64 : typ JScript = {0}, typ JScript .NET = {1}",typeof(Int64Val),Int64Val.GetType());

Console.WriteLine("Decimal : typ JScript = {0}, typ JScript .NET = {1}",typeof(decimalVal),decimalVal.GetType());

byteVal = 1;
// Kolejny wiersz powoduje błąd kompilacji, bo 300 jest
// większe od 255!
// byteVal = 300

// Spróbujmy w czasie wykonywania przypisać byteVal
// niepoprawną wartość...
NumericVal = 300;

try
{
  Console.WriteLine("Próba przypisania wartości {0} zmiennej typu Byte...", NumericVal);
  byteVal = NumericVal;
}
catch (e:Exception) {
  Console.WriteLine (e.Message);
}

/** Dane wyjściowe programu:

Number : typ JScript = number, typ JScript .NET = System.Double
String : typ JScript = string, typ JScript .NET = System.String
Boolean : typ JScript = boolean, typ JScript .NET = System.Boolean
Date : typ JScript = object, typ JScript .NET = Microsoft.JScript.DateObject
Byte : typ JScript = number, typ JScript .NET = System.Byte
Single : typ JScript = number, typ JScript .NET = System.Single
Int32 : typ JScript = number, typ JScript .NET = System.Int32
Int64 : typ JScript = number, typ JScript .NET = System.Int64
Decimal : typ JScript = number, typ JScript .NET = System.Decimal
Próba przypisania wartości 300 zmiennej typu Byte...
Arithmetic operation resulted in an overflow.**/
