目录
7、所有的类型都能够转换成string类型,调用ToString()。
1、变量类型
C#常用的数据类型包括:
整型(Integer):
一共有8个byte、sbyte、int、uint、short、ushort、long、ulong
浮点型(Floating-point):
用于表示带有小数部分的数值,包括float、double等。
字符型(Character):
用于表示单个字符,使用char类型。
字符串型(String):
用于表示一串字符,使用string类型。
布尔型(Boolean):
用于表示真或假,使用bool类型。
数组(Array):
用于存储多个相同类型的元素,可以使用一维数组、多维数组或者交错数组。
枚举(Enum):
用于定义一组命名的常量值,可以使用enum关键字定义。
结构体(Struct):
用于封装多个相关的数据成员,可以使用struct关键字定义。
类(Class):
用于封装数据和方法,可以使用class关键字定义。
接口(Interface):
用于定义一组方法和属性的规范,可以使用interface关键字定义。
变量的使用规则:先声明再赋值最后使用
int number;
number=10;
number=20;
Console.WriteLine(number);
2、Camel Pascal
命名法则(驼峰命名法)
Camel(驼峰)
在C#中变量使用此命名方式。
首个单词的首字母小写,其余单词的首字母大写(如:myValue)。
Pascal(帕斯卡)
在C#中方法与类,属性使用此命名方式。
每个单词的第一个字母都大写(如:MyValue)。
如果使用到英文单词的缩写,全部使用大写(如:HP、MP)。
3、运算符
赋值运算符:=
复合赋值运算符:
+=
-=
*=
/=
%=
sum+=age;
sum=sum+age;
算数运算符: + - * / % ++ --
关系运算符: > < >= <= == !=
逻辑运算符: && || !
int num = 10;
Console.WriteLine(num - 10);//0
//整形在进行运算时,得到的结果还是整形 如果有小数部分 小数部分会被舍弃掉
Console.WriteLine(num/3);//3 原本应该是3.33333 但是得到3
//整形和浮点型进行运算得到浮点型
Console.WriteLine(num/3d);//3.33333
Console.WriteLine(num*2);//20
Console.WriteLine(num%2);//0 取余
num += 5;//num = num +5; 15
num -=5;//num = num - 5; 10
num *=5;//num = num * 5; 50
num ++;//num = num + 1; 51
++num;//num = num + 1; 52
4、c#中的语法结构
分支结构: if if-else
选择结构: while do-while for
5、常量
声明的常量的语法: const 变量类型 变量名=值;
什么时候会用到常量?
7、所有的类型都能够转换成string类型,调用ToString()。
8、结构
可以帮助我们一次性声明多个不同类型的变量。 语法: [public] struct 结构名 { 成员;//字段 } 变量在程序运行期间只能存储一个值,而字段可以存储多个值。
区分变量和字段的区别就是字段前面添加下划线
public string _name;//字段存储数据
public int _age;
public char _gender;
3、方法的功能一定要单一。
GetMax(int n1,int n2) 方法中最忌讳的就是出现提示用户输入的字眼。
4、高级参数out、ref、params
1)、out参数。
如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组。 但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候, 我们可以考虑使用out参数。 out参数就侧重于在一个方法中可以返回多个不同类型的值。
写一个方法 求一个数组中的最大值、最小值、总和、平均值
class Program
{
static void Main(string[] args)
{
//写一个方法 求一个数组中的最大值、最小值、总和、平均值
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int max = 0;
int min = 0;
int sum = 0;
int avg = 0;
Test(numbers, out max, out min, out sum, out avg);
Console.WriteLine(max);
Console.WriteLine(min);
Console.WriteLine(sum);
Console.WriteLine(avg);
Console.ReadKey();
}
/// <summary>
/// 计算一个整数数组的最大值、最小值、平均值、总和
/// </summary>
/// <param name="nums">要求值的数组</param>
/// <param name="max">多余返回的最大值</param>
/// <param name="min">多余返回的最小值</param>
/// <param name="sum">多余返回的总和</param>
/// <param name="avg">多余返回的平均值</param>
public static void Test(int[] nums, out int max, out int min, out int sum, out int avg)
{
//out参数要求在方法的内部必须为其赋值
max = nums[0];
min = nums[1];
sum = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] > max)
{
max = nums[i];
}
if (nums[i] < min)
{
min = nums[i];
}
sum += nums[i];
}
avg = sum / nums.Length;
}
}
2)、ref参数
能够将一个变量带入一个方法中进行改变,改变完成后,再讲改变后的值带出方法。 ref参数要求在方法外必须为其赋值,而方法内可以不赋值。
class Program
{
static void Main(string[] args)
{
double salary = 5000;
JiangJin(ref salary);
Console.WriteLine(salary);
Console.ReadLine();
}
public static void JiangJin(ref double s)
{
s += 500;
}
public static void FaKuan(ref double s)
{
s -= 500;
}
}
3)、params可变参数
将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理。 params可变参数必须是形参列表中的最后一个元素。
5、方法的重载
概念:方法的重载指的就是方法的名称相同给,但是参数不同。 参数不同,分为两种情况 1)、如果参数的个数相同,那么参数的类型就不能相同。 2)、如果参数的类型相同,那么参数的个数就不能相同。 ***方法的重载跟返回值没有关系。
public class Func
{
// 1、显示给出默认的构造函数,这点与结构体不同,结构体的默认构造不能写,一直存在。
public Func()
{
}
// 2、带一个 int 类型参数的自定义构造
public Func(int a)
{
}
// 3、 与 2 不同,带一个 string 类型参数的自定义构造方法
public Func(string a)
{
}
// 4、与 2,3都不同,有两个参数
public Func(int a,int b)
{
}
// 注意下面这种情况,光是返回值不同不是方法重载,编译器也会报错,所以一定要参数列表不同
public int GetNum()
{
return 0;
}
public void GetNum(int a)
{
}
}
6、方法的递归
方法自己调用自己。 找出一个文件夹中所有的文件。
例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 方法的递归
{
class Program
{
static void Main(string[] args)
{
TellStory();
Console.ReadKey();
}
public static int i = 0;
public static void TellStory()
{
Console.WriteLine("从前有座山");
Console.WriteLine("山里有做庙");
Console.WriteLine("庙里有个老和尚和小和尚");
Console.WriteLine("有一天,小和尚哭了,老和尚给小和尚讲了一个故事");
i++;
if (i >= 10)
{
return;
}
TellStory();
}
}
}
12、return
1、在方法中返回要返回的值。 2、立即结束本次方法。