C#入门(一)

设置窗口
Console.SetWindowSize(width,height);
设置光标
 Console.SetCursorPosition(Left, Top);  // Left是列位置,Top是行位置
判断字符数字
Char.IsLetter()   //字符
  Char.IsDigit()     //数字
对话内容逐字输出

在每两个字输出之间通过for循环空语句来形成时间延迟的效果:

 for(int k=0;k<10000*10000;k++);
创建二维数组
 int[ , ]=new int[row , col];
输出二维数组元素
  for(int i=0; i<s.GetLength(0); i++){
     for(int j=0; j<s.GetLength(1); j++){
      }
}
GetLength(0):取行数  GetLength(1):取列数
s.Length :元素总数
构造器调用构造器

在这里插入图片描述

固定类型

const 常量字段的值在编译时被获取
readonly 只读字段的值在运行时被获取:只能在定义时和在构造器里才能被赋值

单例模式

以类A为例:
1、创建A的私有构造器
2、创建A的私有静态变量(表示实例)
3、创建A的公有获取实例方法,当实例为null时创建实例,否则返回该实例
例:用数组实现允许空槽的背包,背包为单例

 class Bag
    {
        string[] items;
        private Bag()
        {
       
        }

        private static Bag instance = null;
        
        public static Bag Instance()
        {
            if (instance == null)
                instance = new Bag();
            return instance;
        }

        public void SetSize(int n)
        {
            items = new string[n];
        }

        public void SetItem(int index, string itemName)
        {
            items[index] = itemName;
        }

        public void SwapItem(int indexA, int indexB)
        {
            string tmp = items[indexA];
            items[indexA] = items[indexB];
            items[indexB] = tmp;
        }

        public void DropItem(int index)
        {
            items[index] = null;
        }
        
        public void Print()
        {
            for (int i = 0; i < items.Length; i++)
                Console.WriteLine("{0}:{1}", i, items[i]==null?"(null)":items[i]);
        }   // items[i]==null 等价于  string.IsNullOrEmpty,即判断其是空字符串还是null
    }
 static void Main(string[] args)
        {
            Bag.Instance().SetSize(10);
            for(; ; )
            {
                Console.Clear();
                Console.WriteLine("在此键入命令:");
                string cmd = Console.ReadLine();
                switch(cmd){
                    case "set":
                        {
                        Console.WriteLine("请输入物品位置:");
                        int index = int.Parse(Console.ReadLine());
                        Console.WriteLine("请输入物品名称:");
                        string name = Console.ReadLine();
                            Bag.Instance().SetItem(index, name);
                        }
                        break;
                    case "swap":
                        {
                            Console.WriteLine("请输入待交换物品位置1:");
                            int index1 = int.Parse(Console.ReadLine());
                            Console.WriteLine("请输入待交换物品位置2:");
                            int index2 = int.Parse(Console.ReadLine());
                            Bag.Instance().SwapItem(index1,index2);
                        }
                        break;
                    case "drop":
                        {
                            Console.WriteLine("请输入要丢弃的物品位置:");
                            int index = int.Parse(Console.ReadLine());
                            Bag.Instance().DropItem(index);
                        }
                        break;
                    case "print":
                        {
                            Bag.Instance().Print();
                        }
                        break;
                }
            }
            Bag.Instance().SetItem(2, "药瓶");
            Bag.Instance().SetItem(5, "匕首");
            Bag.Instance().SetItem(8, "衣服");

            Bag.Instance().Print();
            Bag.Instance().SwapItem(2, 3);
            Console.WriteLine("------------------");
            Bag.Instance().Print();

            Console.ReadLine();
        }
    
使对象可打印

在类中写overide空格后会出现三个可重写方法:
在这里插入图片描述
选择ToString()回车得到
在这里插入图片描述
//格式化输出

public override string ToString(){
    return $"variable:{this.value}";}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值