C#基础— 02

一、基本用法

1、Console.ReadLine();等待用户输入一行字符串后按下回车,一次读入一行。

2、Console.ReadKey();等待用户输入一个字符(任意键),一次读入一个字符。常加在程序的结尾处,方便调试的时候,控制台窗口能暂停等待用户输入,而不会一闪而过。

3、C#条件表达式为    条件表达式 ? 分支1 : 分支2  。条件表达式为真时,输出分支1的结果;条件表达式为假时,输出分支2的结果。

4、switch结构:

(1)、变量(op)与每一个 case 后面的常量进行等值比较,如果相等,就执行对应的分支。执行分支以后, break 关键字会使 switch 结构中止,不会再判断后面的常量。如果变量与所有的常量都不相同,则执行 default 后面的分支。

(2)、switch()  中的变量可以是 :intstringboolcharenum 等,必须是一个定值。其应用实例如下:

 switch (op)
            {
                case "a":
                    result = num1 + num2;
                    break;
                case "s":
                    result = num1 - num2;
                    break;
                case "m":
                    result = num1 * num2;
                    break;
                case "d":
                    if (num2 != 0)
                    {
                        result = num1 / num2;
                    }
                    break;
                default:
                    break;
            }

 5、字符串中的占位符及字符串内插(控制内插表达式的格式

Console.WriteLine("今天是{0}年{1}月",2019,3);
//{0},{1}分别为两个变量的占位符,代表后面的两个变量。
//输出的结果:今天是2019年3月。

string Name="jeff";
Console.WriteLine($"他的名字是{Name}");
//此处{Name}为变量的上面变量的引用,
//将输出:他的名字是jeff

6、输出方式:

static void Main(string[] args)
        {
            string[] name = {"A","B","C","D","E","F","G"};
            int[] score = { 80, 90, 98, 68, 94, 66, 86 };
            int temp = score[0], j = 0;
            for(int i = 0; i < name.Length-1; i++)
            {
                if (score[i] >= score[i + 1])
                {
                    temp = score[i];
                    j = i;
                }
            }
            Console.WriteLine("{0} 是最高分,成绩为:{1}", name[j], temp);
            //{0},{1}为占位符,后面的name[j],temp 为其实参值。
            Console.WriteLine(name[j] + " 是最高分,成绩为: " + temp);
            Console.WriteLine($"{name[j]} 是最高分,成绩为 {temp}");
            //$符号,后面的{}中的内容为该变量的值。
            Console.ReadKey();
        }

7、nameof  运算符返回任何:变量、类型或类型成员的名称:

using System;
using System.Collections.Generic;

namespace Practice01
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(nameof(System.String));
            int j = 5;
            Console.WriteLine(nameof(j));
            List<string> names = new List<string>();
            Console.WriteLine(nameof(names));
            string s = "this is a test";
            Console.WriteLine(s);

            Console.ReadKey();
        }
    }
}

 8、使用 static 修饰的变量为静态变量,意味着该变量是这一类的所有对象所共享。非静态变量的值则对于这一类的每一个对象是唯一的。

private static int s = 12345678;

9、out 参数的使用,用来表示转化是否成功。int.TryParse(input, out int result) 返回值为bool类型,表示转化是否成功。

static void Main(string[] args)
        {
            var input = "123456";
            if (int.TryParse(input, out int result)) //将用字符串表示的数字(input变量的值),转换成整型数字。
            {
                Console.WriteLine(result);
            }
            else
                Console.WriteLine("Could not parse input");

            Console.ReadKey();
        }

10、var object 关键字。

  • var 关键字可代替任何类型 ,编译器会根据上下文来判断你到底是想用什么类型的 。至于什么情况下用到var 就是你无法确定自己将用的是什么类型, 就可以使用。var 类似 object 但是效率比 object 高点.。(C# 中的var关键字
  • object 关键字是C#中所有类型的基类,所有的类型都继承于它,所有类型也都可以用它表示。经常用在编译时无法确定对象类型时使用,使用时要避免类型转换。

11、is 运算符,判断某一变量是否为该类型。

object s = 20;
if(s is int number) //判断s是否是整型的值,在此处定义了一个整型值number
//等价于 if(s is int)
{
    Console.WriteLine(s.GetType());
    Console.WriteLine($"The value of s is: {number}");
}
else
    Console.WriteLine($"{s} is not a int");

12、GetType() 函数返回变量的类型

var s = "This is just a test." ;
Console.WriteLine(s.GetType()); //将返回变量s的类型。

13、Lambda 表达式:  =>  (参数列表)=>表达式或语句块 

14、@ 字符的作用是:除了 \" 外,让其他的任何转义字符都不会再起作用。

string str1 = "hello this is \n a test !";
Console.WriteLine(str1);

//当在前面加上@时,会让转义字符不再生效
string str1 = @"hello this is \n a test !";
Console.WriteLine(str1);

 


二、循环结构

1、while 循环,当条件表达式为真时,进行循环操作。

while (条件表达式)
            {
                循环语句
            }

2、for循环常用于已知循环次数时。

for(变量声明和赋值;循环条件;变量自加)
{
  循环体
}

3、do.......while循环,第一次执行循环体是没有经过条件判断的,后面再执行需要先判。如下所示:

 int sum = 0, x = 10;
            do
            {
                sum += 2;
                x++;
            } while (x < 20);

三、数组

1、一维数组的声明方式: 数据类型[ ] 数组名 = new 数据类型[长度]; 

//长度为3的字符类型数组的几种声明方式
char[] a=new char[3]; //只声明数组的大小
char[] d=new char[3]{'A','B','C'};  //若指定数组大小的同时,对其进行初始化,则数组的大小必须要和初始化的元素个数相同,否则会报错。
char[] b=new char[]{'A','B','C'};//初始化数组,根据元素个数来进行推断数组的大小
char[] c={'A','B','C'};

     数组经过初始化以后,数组元素有默认的初始值, double 类型为 0.0 , int 类型为 0 , char 类型为 'a' , bool 类型为 false , string 类型为 null 。  数组名.Length 会返回数组的长度(即数组元素的个数)。

2、访问数组

(1)通过for循环

(2)foreach关键字

   

int[] array = {1,2,3,4,5,6};
foreach(int x in array)
{
   Console.Write(x+" ");
}

3、二维数组的声明与访问

int[,] array = new int[2,3]; 
//声明了一个二维数组。表示2个一维数组,每个一维数组包含3个变量,总共2*3=6个数组元素
array[0,2] = 66;//为二维数组的第一行,第3列赋值

int[,] s = new int[4,2] {{60,70},{80,90},{100,101},{102,103}};
//定义了一个4行2列的二维数组,表示4个一维数组。
for(int j=0; j<s.GetLongLength(0); j++)
{
  Console.WriteLine("语文:{0},数学{1}",s[j,0],s[j,1]);
}
//s.GetLongLength(0)返回数组中一维数组的个数。

 

 

 

 


参考资料:

[1]  C# Console.ReadLine() 与 Console.ReadKey() 用法

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
与前版功能基本相似,修正了部分bug,对界面进行了美化,目前这个美化相信应该够用了,因为时间问题没有增加可自定义界面功能,等有时间再提供吧,压缩文件使用“好压”做的,里面有一个例子,图片资源编辑工具,大家可以测试一下效果,里面也有详细说明,图片资源编辑器大家也可以用到自己的程序中,方便程序的图片统一管理和调用,菜鸟,达人们别笑话我了。 这里还是在说一下等待窗体的具体使用方法吧 首先将LOADing.dll,DevComponents.DotNetBar2.dll两个dll文件复制到你程序目录中,在程序项目中引用LOADing.dll,在要使用的地方 //先实例 LOADing.FORMshow FRload = new LOADing.FORMshow(); //再调用showto方法,其中的参数this为你调用等待窗体的主窗体对象,delegate { }为委托,IMGclass_AddFlie_r()为功能处理函数,其中所传递的参数第一的FRload必须为固定的创建等待窗体的实例对象,后面跟所需要传递的对象参数。 FRload.showto(this, delegate { IMGclass_AddFlie_r(new object[] { FRload, iclass, fileDialog1.FileNames, _at.SelectedNode.Text }); },true); //这个为数据处理部分 private void IMGclass_AddFlie_r(object[] d) { for (int i = 0; i <= ((string[])d[2]).Length - 1; i++) { ((IMGclass)d[1]).top[d[3].ToString()].Add("标" + ((IMGclass)d[1]).top[d[3].ToString()].Count, BinToCmd(((string[])d[2])[i])); f_new_hand(new object[] { ((IMGclass)d[1]).top[d[3].ToString()], "标" + (((IMGclass)d[1]).top[d[3].ToString()].Count - 1) }); ((LOADing.FORMshow)d[0]).send("加载图片文件:", Convert.ToInt32((Convert.ToSingle(i) / (Convert.ToSingle(((string[])d[2]).Length) / Convert.ToSingle(100))))); } BinToclass(((IMGclass)d[1]), _path[_at.SelectedNode.Parent.Text]); } 好了,使用起来很简单,看看上面的例子就会了,如需索要源码或者要提问的话,请联系QQ76230454.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值