准备工作
1.网上搜索“visual studio”,我下载的是对应windows的社区版:
2.下载完成后打开选择“创建新项目”:
3.选择“控制台应用”:
4.为新项目命名,设置项目位置:
5.框架默认是.NET 6.0,直接创建:
6.创建项目成功后,自动进入编辑器界面。尝试运行程序:
如图,在控制台打印出了语句:
语法
Console类
Console类位于命名空间System下,用于C#控制台应用程序下的I/O操作。主要包含以下函数:
输出字符串,不换行:
Console.Write()
输出字符串后换行:
Console.WriteLine()
在输出内容中,格式项采用如下形式:{index[,alignment][:formatString]}
其中index即索引占位符,alignment是对齐方式,formatString是对输出格式的限定。
读取字符串,不换行。
Console.Read()
读取字符串后换行。
Console.ReadLine()
读取下一个按键:
Console.ReadKey()
代码示例:
using System;
namespace HelloWorld
{
class MyHelloWorld
{
static void Main(string[] args)
{
Console.Write("Enter your name:");
String words = "Hello";
String? name = Console.ReadLine();
Console.WriteLine("{0},{1}!",words,name);
}
}
}
可空类型
在数据类型后加一个‘?’,代表可以赋值为NULL,在变量名后加‘??’,指将该变量视为操作数时,若其为空,视为value。
代码示例:
int a1 = 10;
int? a2 = null;
Console.WriteLine(a1 + (a2??5));
数组
声明数组的语法为:datatype[] arrayName
使用new关键字创建数组:
double[] numList = new double[5];
在创建时初始化:
double[] numList = new double[5] {1,2,3,4,5};
数组长度可以省略:
double[] numList = new double[] {1,2,3,4,5};
通过下标访问数组元素:
numList[0] = 0;
使用foreach便捷的遍历数组:
foreach(double i in numList)
{
...
}
注意如果直接用数组给数组初始化,新的数组变量只是原来数组的别名,即指向相同内存。
代码示例:
double[] numList = new double[5] {1,2,3,4,5};
numList[0] = 0;
double[] numList_2 = numList;
numList_2[1] = 0;
foreach (double i in numList)
{
Console.Write("{0} ",i);
}
执行结果为:
字符串
字符串的连接:使用“+”连接字符串
字符串的构造:传入char数组构造字符串
Join函数,连接一个字符串数组中的元素:Join(String separator(分隔符),String[] value)
Contains函数,返回表示是否字符串中是否存在某string对象的bool值:Contains(String value)
IndexOf函数,查找某字符或字符串的下标:IndexOf(char value(或String value),int startIndex)
Replace函数,替换所有某指定字符为新的字符:Replace(char oldChar,char newChar)
,或替换字符串Replace(String oldValue,String newValue)
Split函数,以某分隔符将字符串分片为字符串数组:Split(params char[] separator)
代码示例:
String firstName = "Donald";
String LastName = "Trump";
Console.WriteLine(firstName + " " + LastName);
char[] letters = { 'D', 'o', 'n', 'a', 'l', 'd', ' ', 'T', 'r', 'u', 'm', 'p' };
String fullName = new String(letters);
Console.WriteLine(fullName);
String[] myStrings = { "I","Love","You","China" };
Console.WriteLine(String.Join(' ',myStrings));
Console.WriteLine(String.Join(' ', myStrings,1,2));
Console.WriteLine(fullName.Contains("Donald"));
Console.WriteLine(fullName.IndexOf('o'));
Console.WriteLine(fullName.Replace('D','d'));
String data = "1,2,3,4,5";
foreach (String a in data.Split(',')) { Console.Write(a+" "); }
String dt = DateTime.Now.ToString("g");
Console.WriteLine("\n"+dt);
执行结果为:
.
.
.
遇到的问题
1.String? name = Console.ReadLine();
在这行代码中,刚开始没有将name的类型设置为可空,即String name,但编辑器提醒我不能直接把可能为空的变量转为String,在将变量类型改为可空后问题解决。
2.String的复制函数Copy,在看的网上的教程中提到了该函数,但在实际中发现Copy函数已被弃用。