🤗🤗🤗今天是周飞飞学习C#的第一天!
今日重点:
1. C#的程序结构
- 命名空间声明(Namespace declaration)
- class 声明
- Class 方法
- Class 属性
- 一个 Main 方法:Main方法是程序的入口
- 语句(Statements)& 表达式(Expressions)
- 注释
2. C#的基本语法
- 关键字
3. C#的数据类型与类型转换
- 对象(Object)类型:当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。
- 动态(Dynamic)类型:态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。
- 字符串类型:@字符串
4. C#的变量与常量
- 常量的声明及引用
5. C#的运算符、判断、循环
- 与C/C++相仿
6. C#的封装
- 类的默认访问标识符是 internal,成员的默认访问标识符是 private。
- internal与public的区别在于internal不可跨文件
7. C#的方法
- 在 C# 中,使用 ref 关键字声明引用参数
- 在 C# 中,使用 out 关键字声明输出参数:提供给输出参数的变量不需要赋值。当需要从一个参数没有指定初始值的方法中返回值时,输出参数特别有用。
8. C#可空类型
- 可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。
- 可空类型声明语法:< data_type> ? <variable_name> = null;
- C# 中??运算符的作用是判断??左边的对象是否为 null,如果不为 null 则使用 ?? 左边的对象,如果为 null 则使用 ?? 右边的对象。
9. C#数组
- 数组声明语法:datatype[] arrayName;
- 数组的初始化需要用到new关键字,如double[] balance = new double[10];
- 使用foreach来遍历数组中的元素
foreach (int j in n ) // n 是一个带有 10 个整数的数组
{
int i = j-100;
Console.WriteLine("Element[{0}] = {1}", i, j);
}
- 区别C#中的二维数组[,]与交错数组[][]:C#中的二维数组更像矩阵,而C/C++中的二维数组更像是C#中的交错数组;交错数组与二维数组的区别,可以直观的理解为交错数组每一行的长度是可以不一样的。
- 传递数组作为参数的方法
- 参数数组params 关键字,参数数组通常用于传递未知数量的参数给函数。
- 使用Array类来对数组进行处理
今日练习:
展开查看
using System;
namespace StudyFirstDay
{
class ConvertType //数据类型的转换
{
public void Change()
{
int i = 1;
double j = 2.13;
bool k = true;
string l = "ABBBBBBB";
Console.WriteLine(i.ToString());
Console.WriteLine(j.ToString());
Console.WriteLine(k.ToString());
Console.WriteLine("{0}",l.ToLower());
}
}
class Circle //程序的基本语法学习
{
private double radis;
public void AcceptDetails()
{
radis = Convert.ToDouble(Console.ReadLine());
}
public double GetArea()
{
return radis * radis * 3.14;
}
public void Display()
{
Console.WriteLine("radis:{0}", radis);
Console.WriteLine("area:{0}", GetArea());
}
public void Getsize() //用于获取各种数据类型的size
{
Console.WriteLine("Int:{0}", sizeof(int));
Console.WriteLine("Double:{0}", sizeof(double));
Console.WriteLine("Float:{0}", sizeof(float));
}
public void Swap(ref int x,ref int y) //使用引用时,改变形参的同时也会改变实参
{
int temp = x;
x = y;
y = temp;
}
public void Getvalue(out int x,out int y) //使用输出来达到在同一方法中输出多个参数的目的
{
x = 233;
y = 666;
}
}
class SampleClass
{
public const int c1 = 5;
public const int c2 = c1 + 5; //必须公有才能被类外引用
public SampleClass() //注意此处在声明构造函数时,没有声明返回值的类型
{
//空函数
}
}
class ExcuteCircle
{
static void Main(string[] args)
{
int a1 = 5, a2 = 10;
SampleClass s = new SampleClass();
ConvertType p = new ConvertType();
Circle r = new Circle();
//r.AcceptDetails();
//r.GetArea();
//r.Display();
//r.Getsize();
//p.Change();
// Console.WriteLine("c1={0},c2={1}", SampleClass.c1, SampleClass.c2);//注意,此处引用不能用s.c1,s.c2,因为c1,c2是常量
//r.Swap(ref a1,ref a2); Console.WriteLine("{0},{1}",a1,a2);//别忘了此处也需要传递关键字ref
r.Getvalue(out a1,out a2); Console.WriteLine("{0},{1}", a1, a2); //别忘了此处也需要传递关键字out
Console.ReadKey();
}
}
}
今日总结:
总的来说今天大致完成了C#菜鸟教程前一半的内容,但是考虑到难度递增,因此可能后一半的内容会花好几天的时间去学习与消化。
今天的收获主要在于对C#的基础有了基本的掌握,用粗体标注出了我认为的重难点,之后复习时可以参考着进行。然后对于数组这一部分,只是浅尝辄止,没有进行相应的练习,也没有深入地挖掘其发散的知识点,打算在以后用到数组时再返回来仔细地学习一番。
以上
明天也要好好加油呀!🚀🚀🚀
阅读量
loading...