/*
C#: The Complete Reference
by Herbert Schildt
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Demonstrate block scope.
using System;
public class ScopeDemo {
public static void Main() {
int x; // known to all code within Main()
x = 10;
if(x == 10) { // start new scope
int y = 20; // known only to this block
// x and y both known here.
Console.WriteLine("x and y: " + x + " " + y);
x = y * 2;
}
// y = 100; // Error! y not known here
// x is still known here.
Console.WriteLine("x is " + x);
}
}
Language Basics
Demonstrate dynamic initialization
/*
C#: The Complete Reference
by Herbert Schildt
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Demonstrate dynamic initialization.
using System;
public class DynInit {
public static void Main() {
double s1 = 4.0, s2 = 5.0; // length of sides
// dynamically initialize hypot
double hypot = Math.Sqrt( (s1 * s1) + (s2 * s2) );
Console.Write("Hypotenuse of triangle with sides " +
s1 + " by " + s2 + " is ");
Console.WriteLine("{0:#.###}.", hypot);
}
}
Int, float, double, decimal
/*
Learning C#
by Jesse Liberty
Publisher: O'Reilly
ISBN: 0596003765
*/
using System;
public class IntFloatDoubleDecValues
{
static void Main()
{
int firstInt, secondInt;
float firstFloat, secondFloat;
double firstDouble, secondDouble;
decimal firstDecimal, secondDecimal;
firstInt = 17;
secondInt = 4;
firstFloat = 17;
secondFloat = 4;
firstDouble = 17;
secondDouble = 4;
firstDecimal = 17;
secondDecimal = 4;
Console.WriteLine("Integer: {0}
float: {1}",
firstInt/secondInt, firstFloat/secondFloat);
Console.WriteLine("double: {0}
decimal: {1}",
firstDouble/secondDouble, firstDecimal/secondDecimal);
Console.WriteLine(
"
Remainder(modulus) from integer division: {0}",
firstInt%secondInt);
}
}
Uninitialized Values
/*
Learning C#
by Jesse Liberty
Publisher: O'Reilly
ISBN: 0596003765
*/
// with compile error
public class UninitializedValues
{
static void Main( )
{
int myInt;
System.Console.WriteLine
("Uninitialized, myInt: {0}",myInt);
myInt = 5;
System.Console.WriteLine("Assigned, myInt: {0}", myInt);
}
}
Demonstrate the use of readonly variables
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
//
// ReadOnly.cs -- demonstrate the use of readonly variables
//
// Compile this program with the following command line
// C:>csc ReadOnly.cs
//
namespace nsReadOnly
{
using System;
public class ReadOnly
{
static double DegreeFactor = 1;
static double MilFactor = 0.05625;
static public void Main ()
{
double degrees = 42;
// 1 degree = 17.77778 mils
double mils = degrees * 17.77778;
// 1 degree = 0.017453 radians
double radians = degrees * 0.017453;
clsArea InDegrees = new clsArea (DegreeFactor);
InDegrees.Angle = degrees;
InDegrees.Radius = 50;
Console.WriteLine ("Area of circle is {0,0:F1}", InDegrees.Area);
// Radians are the default, so you can use the parameterless
// constructor
clsArea InRadians = new clsArea ();
InRadians.Angle = radians;
InRadians.Radius = 50;
Console.WriteLine ("Area of circle is {0,0:F1}", InRadians.Area);
clsArea InMils = new clsArea (MilFactor);
InMils.Angle = mils;
InMils.Radius = 50;
Console.WriteLine ("Area of circle is {0,0:F1}", InMils.Area);
}
}
class clsArea
{
public clsArea ()
{
}
public clsArea (double factor)
{
m_Factor = factor / 57.29578;
}
private const double pi = 3.14159;
private const double radian = 57.29578;
private readonly double m_Factor = 1;
public double Angle
{
get {return (m_Angle);}
set {m_Angle = value;}
}
public double Radius
{
get {return (m_Radius);}
set {m_Radius = value;}
}
private double m_Angle;
private double m_Radius;
public double Area
{
get
{
return (m_Radius * m_Radius * pi * m_Angle * m_Factor / (2 * pi));
}
}
}
}
Illustrates variable scope
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example2_6.cs illustrates scope
*/
public class Example2_6
{
public static void Main()
{
{
int myValue = 1;
}
myValue = 2; // causes error
}
}
An attempt to reference an uninitialized variable
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example2_4.cs shows an attempt to reference an
uninitialized variable
*/
public class Example2_4
{
public static void Main()
{
int myValue;
System.Console.WriteLine(myValue); // causes an error
}
}