1、  控制台成员:Console.Write()不换行Console.WriteLine()换行

            Console.Read()不换行返回值是int类型,读取一个字符,Console.ReadLine()换行,返回值是string类型,读取一行,Console.ReadKey()获取用户按下的下一个字符或功能键。按下的键显示在控制台窗口中。

2、  数据类型:包括内置数据类型、用户自定义类型、匿名类型

在类中静态的成员是属于类的,非静态的成员是属于对象的

只读字段readonly在构造函数中是可以改变的,而常量Const是一成不变的。

3、  控制台小钢琴:

4、  命名规则:(1)匈牙利命名规则:变量名=属性+类型+对象描述

         2)驼峰命名规则:第一个单词首字母小写后面单词首字母大写

         3)帕斯卡命名规则:每个单词首字母大写

5、值类型包括简单类型、枚举类型、结构类型,引用类型包括类类型、接口类型、Unikode字符串类型、数组类型、委托类型

1)值类型实例:static void Main(string[] args)

        {

            int a = 5;                         // a赋值5

            int b = a;                         // a赋给b

            b = 10;                            // b赋值10

            Console.WriteLine(a);    // a的值输出,查看的变化是否影响

        }

结果:5

C#基础知识(二)_c#

原理:

在线程堆栈中给a赋值为5,把a赋给b时不是地址而是把值传给b,这样再给b赋值时并不影响a的值。

2)引用类型实例:static void Main(string[] args)

        {

            int[] Array_a =new int[]{5};              // 定义一个数组,有一个无素5

            int[] Array_b =Array_a;                 // Array_a赋给 Array_b

            Array_b[0] = 10;                       // Array_b的唯一元素赋值10

            Console.WriteLine(Array_a[0]);     // Array_a的唯一元素的值输出,查看Array_b中元素值的变化是否影响Array_a元素

        }

结果:10

原理:

C#基础知识(二)_休闲_02 

 

C#基础知识(二)_c#_03

 

在线程堆栈中定义一个数组a遇见new关键字时在托管堆中开辟一个空间存放56,把地址传给a,a赋给b时又把地址传给b,所以当改变数组b的值时,a也改变。

6、  var类型与引用类型:在方法范围中声明的变量可以具有隐式类型 var,匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。类型名由编译器生成,并且不能在源代码级使用。这些属性的类型由编译器推断。

7、  装箱:是把值类型转换为引用类型。拆箱:把引用类型转换为值类型。注意:拆箱后的类型与装箱前的类型要匹配。

8、  类型转换:Parse只能把string转换为相应的类型。DateTime.Parse(2011-07-13)    toString()转换成string类型  Convert.To类型强类型转换

9、  Dynamic类型:该类型是一种静态类型,但类型为 dynamic 的对象会跳过静态类型检查。 大多数情况下,该对象就像具有类型 object 一样。 在编译时,将假定类型化为 dynamic 的元素支持任何操作。

10、     程序:银行系统完成查询余额、存款、取款、转账

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

namespace _03
{
    class Program
    {
        static int Count = 3;
        static string username = "gsw";
        static string password = "111111";
        static double money = 2000.00;
        static void Main(string[] args)
        {
            Console.WriteLine("欢迎使用光大银行");
            Console.Title = "光大银行";

                ff();
        }
        static void ff()
        {
            Console.WriteLine("用户名:");
            string temun = Console.ReadLine();

            Console.WriteLine("密码:");          
            string tempw = "";
            for (int i = 0; i < 6; i++)
            {
                ConsoleKeyInfo cki = Console.ReadKey(true);
                Console.Write("*");
                tempw += cki.KeyChar;
            }
            if (username == temun && password == tempw)
            {
                while (true)
                {


                    Console.Clear();
                    Console.WriteLine(username + "欢迎登录!");
                    Console.WriteLine("1、余额查询  2、存款  3、取款  4、转帐  5、退出");
                    switch (Console.ReadLine())
                    {
                        case "1":
                            Select();
                            break;
                        case "2":
                            CunKuan();
                            break;
                        case "3":
                            QuKuan();
                            break;
                        case "4":
                            ZhuanZhang();
                            break;
                        case "5":
                            return;
                    }
                }
            }
            else
            {
                Count--;
                Console.WriteLine();
                Console.WriteLine("用户名或密码错误!还有{0}次输入机会",Count);
                Console.WriteLine("请重新输入!");
                if (Count > 0)
                {
                    ff();
                }
            }
        }
        static void SetColor()
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("返回请按任意键!");
            Console.ForegroundColor = ConsoleColor.White;
            Console.ReadKey(true);
        }
        static void Select()
        {
            Console.WriteLine("您的余额为:{0:c}", money);
            SetColor();
        }
        static void CunKuan()
        {
            Console.WriteLine("请输入要存入的金额:");
            double temmoney = double.Parse(Console.ReadLine());
            money += temmoney;
            Console.WriteLine("操作成功!当前余额为:{0:c}", money);
            SetColor();
        }
        static void QuKuan()
        {
            Console.WriteLine("请输入要取的金额:");
            double temmoney3 = double.Parse(Console.ReadLine());
            if (temmoney3 <= money)
            {
                money -= temmoney3;
                Console.WriteLine("操作成功!当前余额为:{0:c}", money);
                SetColor();
            }
            else
            {
                Console.WriteLine("对不起,您的余额不足!");
                SetColor();

            }
        }
        static void ZhuanZhang()
        {
            Console.WriteLine("请输入要转入的用户名:");
            string temuser2 = Console.ReadLine();
            Console.WriteLine("请输入要转的金额:");
            double temmoney4 = double.Parse(Console.ReadLine());
            if (temmoney4 <= money)
            {
                money -= temmoney4;
                Console.WriteLine("操作成功!当前余额为:{0:c}", money);
                SetColor();

            }
            else
            {
                Console.WriteLine("对不起,您的余额不足!");
                SetColor();

            }
        }
     }
}