Tuesday 23 February 2016

.net I review

string

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; //vb   need imports system.text
using System.Threading.Tasks;

namespace strings_demo
{

    class Program
    {

        static void Main(string[] args)
        {
            string a = "hello";
            for (int x = 0; x < a.Length; x = x + 1)
                Console.WriteLine(a.Substring(x, 1));
            char[] b = a.ToCharArray(); //vb dim b() as char=...
            string b2 = new string(b);//vb dim b2 as new string(b)
            foreach (char c in b) Console.WriteLine(c.ToString());
            //vb  for each c as char in b
            byte[] d = Encoding.ASCII.GetBytes(a);//vb dim d() as byte=
            string d2 = Encoding.ASCII.GetString(d);
            string e = "1,bob,ab";
            string[] f = e.Split(',');
            //vb  dim f() as string = e.split(convert.tochar(","))
            for (int y = 0; y < f.Length; y = y + 1)
                Console.WriteLine(f[y]);
            string f2 = String.Join(",", f);
            string g = ""; //non-modifiable string (variable length)
            //re-allocates memory everytime string is changed
            for (int z = 1; z <= 9; z = z + 1) g = g + z.ToString();
            Console.WriteLine(g);
            StringBuilder h = new StringBuilder(20);//modifiable string
            //above is fixed length in memory
            for (int z2 = 1; z2 <= 9; z2 = z2 + 1) h.Append(z2.ToString());
            Console.WriteLine(h);
            string i = "12345";
            int total = 0;
            for (int z3 = 0; z3 < i.Length; z3 = z3 + 1)
                total = total + Convert.ToInt32(i.Substring(z3, 1));
            Console.WriteLine(total);
            total = 0;
            char[] j = i.ToCharArray();//gets ascii values not 1,2,3...
            for (int z4 = 0; z4 < i.Length; z4 = z4 + 1)
                //must convert char's to string's before converts
                total = total + Convert.ToInt32(j[z4].ToString());
            //vb total=total + convert.toint32(convert.tostring(j(z4)))
            Console.WriteLine(total);
         

            Console.Read();
        }
    }
}

--------------------------------------------------------------------------
inherit

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace inheritance
{
    class person
    {   public string name;
        protected long phone;
        private string email;
        public person()  //public sub new()   constructor
        {   Console.WriteLine("in person");
        }
        public person(string n, long p)
        {//constructors are run top-down,  destructors are run bottom-up
            name = n;
            phone = p;
        }
        public void print() //vb  public sub print()
        {   Console.WriteLine(name+phone);
        }
    }
    class worker : person //is-a inheritance
        //vb  on second line   say    inherits person
    {   public int sin_number;
        public double salary;
        public worker()
        {   Console.WriteLine("in worker");
        }
        public worker(int sin, double s,string n,long p):base(n,p)
        {   sin_number = sin;  //vb  above is mybase.new(n,p)
            salary = s;
        }
        public void print()
        {//vb mybase.print()
            base.print();  //calls method in parent class
            Console.WriteLine(sin_number + " " + salary);
        }
    }
    class salesperson : worker
    {   public double commission;
        public salesperson()
        {   Console.WriteLine("in salesperson");
        }
        public salesperson(double c,double s,
                           int sin,long p,string name):base(sin,s,name,p) //named constructor
            //vb  public sub new(c as double)
            //vb  on second line   say    mybase.new(sin,s,name,p)
        {   commission = c;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            salesperson s = new salesperson(0.10,40000,123,5551111,"ed");
            s.print();
            Console.Read();
        }
    }
}

------------------------------------------------------------------------------------------
inherit 2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace inheritane2
{
    class animal //c# use sealed class to protect
                 //vb use notinheritable class to protect
    {
        public string name="charlie";
        public int age=3;
        public virtual void print() //vb overrideable
        {
            Console.WriteLine(name+age);
        }
    }
    class dog : animal //is-a
    {
        public string sound = "woof";
        public override void print() //vb overrides
        {
            //base.print();
            Console.WriteLine(sound);
        }
    }
    class engine
    {
        public int horsepower;
    }
    class transmission
    {
        public int gears;
    }
    class car
    {
        public engine eng = new engine(); //has-a
        //public eng as new engine()
        public transmission trans = new transmission();
    }
    static class copyright //uses-a
    { //vb shared
        static public void show()
        {
            Console.WriteLine("Copyright SAIT");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            car c = new car();
            c.eng.horsepower = 300;
            c.trans.gears = 4;
            dog d = new dog();
            copyright.show(); //no need to use new command
            Console.WriteLine("hi");
            Console.Read();
        }
    }
}

----------------------------------------------------------------

multi-forms

--------------FORM 1 -------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace windemo2
{
    public partial class Form1 : Form
    {
        public static string data;
        //vb public shared data as string
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(textBox1.Text + textBox2.Text + textBox3.Text);
            textBox3.Text = "changed";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show(textBox1.Text);
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {//does not activate
            if (e.KeyCode == Keys.F1)
                MessageBox.Show("f1 pressed");
        }

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F1)
                MessageBox.Show("f1 pressed");
            if (e.KeyCode == Keys.F2)
                MessageBox.Show("f2 pressed");
            textBox2.Text = e.KeyCode.ToString();
            if (e.KeyCode.ToString() == "Next")
                MessageBox.Show("page down pressed");
        }

        private void textBox2_KeyDown(object sender, KeyEventArgs e)
        {
            textBox1_KeyDown(sender, e);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            data = textBox1.Text; //put parameter in shared variable
            //pass parameter in constructor
            Form2 x = new Form2(textBox1.Text);//vb  dim x as new form2()
            x.parameter = textBox1.Text; //pass parameter with get/set
            x.f = this;//pass parameter using pointers
            //vb  above is = me
            //above must change form designer code
            //to have public security on textboxes to pass
            //modal call
            //x.Show();
            //non-modal call
            x.ShowDialog();
            textBox1.Text = data;//get from shared variable
            textBox5.Text = x.parameter;//get/set retrieval
            //MDI call
            //x.MdiParent  = this;//vb  =me
            //x.Show();
        }
    }
}


---------------------- FORM 2 ------------------

sing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace windemo2
{
    public partial class Form2 : Form
    {
        public Form1 f;//vb public f as form1
        public string parameter//public property parameter as string
        {
            set { textBox3.Text = value; }
            get { return textBox3.Text; }
        }
        public Form2()
        {
            InitializeComponent();
        }
        //vb  public sub new()
        //vb  end sub
        public Form2(string x) //constructor
        {//vb public sub new(x as string)
            InitializeComponent();
            textBox1.Text = x;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("hi");
        }

        private void Form2_Load(object sender, EventArgs e)
        {//grab shared variable
            textBox2.Text = Form1.data;
            textBox4.Text = f.textBox1.Text;//grab pointer
        }

        private void button2_Click(object sender, EventArgs e)
        { //move back to public shared variable
            Form1.data = textBox2.Text;
            f.textBox6.Text = textBox4.Text;//pass with pointer
            this.Close();
        }
    }
}

--------------------------------------------------------------------

object

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace objects3
{
    static class order //vb remove static
    {   static public int ordernumber; //vb  change static to shared
        static public double total;
    }
    class customer
    {   public string name;
        static public double creditlimit;
        public const double shiprate = 5.00; //like a static
        public readonly double rate2 = 10.00; //new version of const
    }
    class bank
    {
        public double account, amount, interest;
        public bank() { }   //vb  sub new()
        public bank(double am)
        {
            amount = am;
        }
        public bank(double am, double inter):this(am)
        {
            //amount = am;
            interest = inter;
        }
        public bank(double acc, double am, double inter):this(am,inter)
            //vb  public sub new(acc as double, ...)
        {
            this.account = acc;
            //in vb   me.new(am,inter) inside the code
            //amount = am;
            //interest = inter;
        }
     

    }
    class payroll
    {
        public string name=""; //attribute (no code attached)
        public payroll() { }
        public payroll(string n, double r)
        {
            this.name = n;
            this.rate = r;
        }
        public payroll(double r, string n):this(n,r)
        {
            //me.new(n,r)
        }
        private double _rate=0;
        public double rate //property (code attached)
        {
        get { return _rate;  } //somebody is printing variable
        set { if (value <= 100) _rate = value;  } //getting a value
        }
        //vb
        //dim _rate as double
        //public property rate as double
        //   set
        //   end set
        //   get
        //   end get
        // end property
        public double tax { get; set; } //useless
    }
    class Program
    {   static void Main(string[] args)
        {
            payroll p = new payroll();
            p.rate = 20;
            p.rate = 2000;
            Console.WriteLine(p.rate);

            Console.Read();
        customer c = new customer();
            c.name = "ed";
            Console.WriteLine(c.rate2);
            customer.creditlimit = 10000;
            customer d = new customer();
            d.name = "mary";
            order.ordernumber = 10;
            order.total = 1000;
            worker.worker w = new worker.worker();
            w.name = "bob";
            w.salary = 60000;
            Console.WriteLine(w.name);
        }
    }
}

------------------------------------------------------------

object 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace object1
{
    public class time
    {
        public int hour, minute, second;
        ~time()//destructor
        {
            Console.WriteLine("in destructor");
            Console.WriteLine("in destructor");
            Console.WriteLine("in destructor");
            Console.Read();//waits for a bit
        }
        public time() //empty constructor
        {
            Console.WriteLine("in constructor");
            hour = 0; minute = 0; second = 0;
        }
        public time(int x, int y, int z) //full constructor
        {
            this.hour = x;
            this.minute = y;
            this.second = z;
        }
        //fix for printing
        public override string ToString()
        {
            return hour+":"+minute+":"+second;
        }
        //fix for copying
        public void Copy(time x)
        {
            this.hour = x.hour;
            this.minute = x.minute;
            this.second = x.second;
        }
        public override bool Equals(object obj)
        {
            time x = (time)obj;
            return this.hour==x.hour && this.minute==x.minute &&
                                this.second==x.second;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            time t = new time(10,0,0); //t is an object
            //t.hour = 10;
            time t2 = new time();
            t2.hour = 10;
            Console.WriteLine(t);  //problem 1 with objects
            //if (t == t2) Console.WriteLine("same"); //problem 2
            if (t.Equals(t2)) Console.WriteLine("same");
            else Console.WriteLine("different");
            time t3 = new time();
            t3 = t; //problem 3
            time t4 = new time();
            t4.Copy(t);  //must use function to copy
            t.hour = 15;
            Console.WriteLine(t4.hour);
            Console.Read();
            //time.hour = 10;

        }
    }
}

----------------------------------------------------------------

error

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace trap
{

    class Program
    {
        static void Main(string[] args)
        {
            double x=0;
            top: //assigns a label
            Console.WriteLine("enter a number");
            string s = Console.ReadLine();
            try
            {
                x = Convert.ToDouble(s);//can be many lines of code
            }
            catch (DivideByZeroException e1)//e1 is any name
            //can catch specific errors
            { Console.WriteLine("math error"); }
            catch (Exception e2) //catches all remaining errors
            { Console.WriteLine(e2.Message);
             goto top;
            }
        top2: Console.WriteLine("Enter second number");
        double x2 = 0;
        try { x2 = Convert.ToDouble(Console.ReadLine()); }
        catch (Exception e3) { goto top2; }

        int a = 1, b = 1, c=0;
        try { c = a / b; goto bottom; }
        catch (Exception e4) { Console.WriteLine(e4.Message); }
        finally { Console.WriteLine("at end"); }
            //finally runs if errors exists AND if no errors exist
            //.NET makes sure that if any code inside a try
            //does a return, a goto, or if the program fails
            //or is closed
            //then finally code will always run.
            //useful for closing files, cleanup, closes databases,
            //and writing things to log files
            bottom:
            Console.WriteLine(x);

            short ss = 32767;
            try { ss = checked((short)(ss + 1)); }
            catch (Exception e5) { Console.WriteLine("overflow"); }
            Console.WriteLine(ss);

        top3: Console.WriteLine("Enter third number");
            double x22 = 0;
            if (!double.TryParse(Console.ReadLine(), out x22)) goto top3;
            //vb out x22
            //  change it to <outattribute> byref x22 </outattribute>
            Console.WriteLine(x22);

            Console.ReadLine();
        }
    }
}

-----------------------------------------------------------------------------------------------

format

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace formats2
{
    class Program
    {
        static void Main(string[] args)
        {
            string x = "1234.56", y = "22.80",z="bob";
            double a, b;
            int i;
            a = Convert.ToDouble(x);
            i = Convert.ToInt32(a);
            b = (double)a; //vb   = ctype(a,double)
            Console.WriteLine("{0,10}{1,15:c}{2,-15:f3}", z, a, b);
            Console.ReadLine();

        }
    }
}

No comments:

Post a Comment