c#基础变量介绍

环境配置

1创建项目

file-new project-windows application选择位置和项目名称。我项目名称是pricticeDemo。

2创建DLL动态链接库

DLL=程序的一个独立模块,类似于函数库,需要的时候调用导入就可以了。
1)先建立一个类库
项目右键没有这个选项,于是就如下解决:
在这里插入图片描述在这里插入图片描述记得记住你创建类库的位置
2)创建了之后会默认生成一个Class.cs文件,改名为MyClass.cs
3)在MyClass.cs里面添加代码如下:
由于引入System.Windows.Forms报错
在这里插入图片描述解决如下
在这里插入图片描述勾选确定就可以了
在这里插入图片描述
代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassLibrary
{
    public class MyClass
    {
      public void HeeloWorld() {           System.Windows.Forms.MessageBox.Show("hello world");
      //弹出消息对话框   
        }
    }
}

4)为项目添加引用写的类库
在这里插入图片描述选择浏览,找到你类库的位置,确定
在这里插入图片描述
由于没找到dll文件,于是重新运行了一下类库,就可以找到了,位置就是类库位置\bin\Debug下面。我的完整位置是:E:\我的c#程序\PricticeDemos\DLL\ClassLibrary\ClassLibrary\bin\Debug\ClassLibrary.dll
在这里插入图片描述-------------------------------------------------------------------
在这里插入图片描述在form1.cs下面写入代码,代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ClassLibrary;//注意引用
namespace PricticeDemos
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            MyClass myclass = new MyClass();
            myclass.HeeloWorld();//声明引用
        }
    }
}

运行结果如下:
在这里插入图片描述

语法基础

1整数类型

常用整数类型及其取值范围:

类型名称位数取值范围
sbyte有符号字节型8-128~127
byte无符号字节型80~255
char字符型16\u0000-\uffff
short有符号短整型16-32,768~32,767
ushort无符号短整型160~65,535
int有符号整型32-2,147,483,648~ 2,147,483,647
uint无符号整型320 ~ 4,294,967,295
long有符号长整型64-263-1~263
ulong无符号长整型640 ~ 18,446,744,073,709,551,615

2浮点数

常用的三种浮点数

类型名称精度
float单精度浮点型7
double双精度浮点型15-16
decimal高精度浮点型28-29

3结构体和布尔型

判断矩形是否为长方形:
1)创建文件夹和类
在这里插入图片描述2)类里面编写代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PricticeDemos.demoClasses
{
    class Variables
    {
        //判断矩形是否为正方形
        struct Rectangle
        {
            public int width;
            public int height;
            public bool IsSquare() { return width == height; }
        }
        public void RectangleisSquare() {
            Rectangle rect = new Rectangle();
            rect.width = 100;
            rect.height = 105;
            Console.WriteLine("矩阵宽为:{0},矩形高为:{1}", rect.width, rect.height);
            bool isSquare = rect.IsSquare();
            Console.WriteLine("矩形是否为正方形:{0}", isSquare);
        }
    }
}

3)form里面引用,运行

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
<font color=red>using PricticeDemos.demoClasses;</font>
namespace PricticeDemos
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            Variables var = new Variables();
            var.RectangleisSquare();
        }
    }
}

运行结果如下:
在这里插入图片描述

4枚举型

利用枚举型描述动物类型
1)类里面编写代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PricticeDemos.demoClasses
{
    class Variables
    {
        //判断矩形是否为正方形
        struct Rectangle
        {
            public int width;
            public int height;
            public bool IsSquare() { return width == height; }
        }
        //枚举列出动物类型
        enum Animal : byte { 
            Dog=0,
            Cat=1,
            Mouse=2
        }
        public void RectangleisSquare() {
            Rectangle rect = new Rectangle();
            rect.width = 100;
            rect.height = 105;
            Console.WriteLine("矩阵宽为:{0},矩形高为:{1}", rect.width, rect.height);
            bool isSquare = rect.IsSquare();
            Console.WriteLine("矩形是否为正方形:{0}", isSquare);
        }
        public void Animalenum() { 
            Animal animal=Animal.Cat;
            switch(animal){
                case Animal.Dog:
                    Console.WriteLine("狗");
                    break;
                case Animal.Cat:
                    Console.WriteLine("猫");
                    break;
                case Animal.Mouse:
                    Console.WriteLine("老鼠");
                    break;
                default:
                    break;
            }
        }
    }
}

2)form调用

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using PricticeDemos.demoClasses;
namespace PricticeDemos
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            Variables var = new Variables();
            //var.RectangleisSquare();
             var.Animalenum();
        }
    }
}

之后都是这样

5引用类型

修改圆柱的高度和底半径
代码如下:

//修改圆柱体的高度和底面积
        struct Column {
            public Circle Circle;
            public int Height;
        }
        class Circle {
            public int Radius;
        }
----------------------------------------------------
 public void editColumonHC() {
            Column column1 = new Column();
            Circle circle1 = new Circle();
            column1.Height = 20;
            column1.Circle = circle1;
            circle1.Radius = 10;
            Console.WriteLine("圆柱体1高度:{0}", column1.Height);
            Console.WriteLine("圆柱体底面半径:{0}", column1.Circle.Radius);
            Console.WriteLine("将圆柱体1赋值给圆柱体2");
            //柱体2
            Column column2 = column1;
            Console.WriteLine("将圆形1半径改为30");
            circle1.Radius = 30;
            Console.WriteLine("将圆柱体1底面半径:{0}",column1.Circle.Radius);
            Console.WriteLine("将圆柱体2底面半径:{0}", column2.Circle.Radius);
            Console.WriteLine("将圆柱体1高度:{0}", column1.Height);
            Console.WriteLine("将圆柱体2高度:{0}", column2.Height);
            Console.WriteLine("将圆柱体2高度改为40");
            column2.Height = 40;
            Console.WriteLine("将圆柱体1高度:{0}", column1.Height);
            Console.WriteLine("将圆柱体2高度:{0}", column2.Height);
        }

6常量

计算圆形面积
代码如下:

 //计算圆形面积
        class CCircle {
            const double PI = 3.1415926f;
            public readonly int CRadius = 1;//只读半径
            public CCircle(int radius) { CRadius = radius; }//构造函数
            public double Area() { return PI * CRadius * CRadius; }//面积
        }
     ---------------------------------------------------
        public void CCirecleArea() {
            CCircle circle = new CCircle(10);
            Console.WriteLine("半径为{0}的圆形面积为{1}",circle.CRadius,circle.Area());
        }

7变量

通过用户输入的高和宽,计算矩形的面积
代码如下:

 //输入高宽计算矩形面积
        class CRectangle {
            public int Width, Height;//声明变量
            public int TryArea() {//计算面积并检测数据溢出
                checked {
                    int area = Width * Height;
                    return area;
                }
            }
            public int Area() { return Width * Height; }//计算矩形面积
        }

 public void RectangleAreaByinput() {
            CRectangle rect = new CRectangle();
            Console.WriteLine("请输入矩形的宽度:");
            rect.Width = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入矩形的高度:");
            rect.Height = int.Parse(Console.ReadLine());
            Console.WriteLine("矩形面积为:\n{0}",rect.Area());
            //检测数据溢出
            Console.WriteLine("矩形面积为:\n{0}", rect.TryArea());
        }

直接运行需要输出无法运行,需要项目右键属性修改
在这里插入图片描述

8算数运算符

实现简单计算器:
代码如下:

//简单计算器
        public void SampleCompute() {
            Console.WriteLine("请输入第一个数:");
            int num1 = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入算数运算符:");
            string Operator = Console.ReadLine();
            Console.WriteLine("请输入第二个数:"); 
            int num2 = int.Parse(Console.ReadLine());
            //计算
            int result = 0;
            switch (Operator) { 
                case "+":
                    result = num1 + num2;
                    break;
                case "-":
                    result = num1 - num2;
                    break;
                case "*":
                    result = num1 * num2;
                    break;
                case "/":
                    result = num1 / num2;
                    break;
                case "%":
                    result = num1% num2;
                    break;
                default:
                    Console.WriteLine("计算出错!!");
                    break;
            }
            Console.WriteLine("{0}{1}{2}={3}", num1, Operator, num2, result);
        }

9关系运算符

常用的关系运算符

关系运算符关系运算符名称
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于

对于数值来说是比较大小
对于引用类型来说就是看是不是引用同一个对象

10按位运算符

按字节提取整数型数值
代码如下:

//按字节提取整数型数值
        public void getIntByByte() {
            Console.WriteLine("请输入一个整数:");
            int num = int.Parse(Console.ReadLine());
            Console.WriteLine("{0}的十六进制形式为0x{1:X8}", num, num);
            int numHex = num & 0x000000FF;//是0x不是Ox
            Console.WriteLine("第1个字节是:0x{0:X2}", numHex);
            numHex = num>>8 & 0x000000FF;//是0x不是Ox
            Console.WriteLine("第2个字节是:0x{0:X2}", numHex);
            numHex = num>>16 & 0x000000FF;//是0x不是Ox
            Console.WriteLine("第3个字节是:0x{0:X2}", numHex);
            numHex = num >> 24 & 0x000000FF;//是0x不是Ox
            Console.WriteLine("第4个字节是:0x{0:X2}", numHex);
        }

11条件运算符

条件运算符解释
& 和 &&都表示并且,a&&b只要a为false就不计算后面的b了,称为短路运算符,&是把true看成1 ,把false看成0作位运算得到结果
| 和 ||都表示或者,同样的 || 是短路运算符,和上面的基本思想相同

12三元运算符

语法如下:
条件表达式?表达式一:表达式二

例子:
a>b?c:d
a大于b就取c否则取d

注意
条件运算符是右结合的运算符,比如:
a>b?a:b>c?b:c 等价于
a>b?a:(b>c?b:c ) 而不是
(a>b?a:b>c)?b:c

13函数使用和引用传递

引用传递 指的是,会改变传入的值,值传递不会改变。
static 为静态函数,无法被实例化,也就是说,无法通过类名或者new的类来调用,并且他只能调用同为静态的变量和静态的方法。于是这里全部修改为public。

交换两个数的值代码如下:


        public void Exchange(ref int num1, ref int num2) {
            int temp = num1;
            num1 = num2;
            num2 = temp;
        }

        public void DataExchange( int num1,  int num2)
        {
            int temp = num1;
            num1 = num2;
            num2 = temp;
        }
        
        public void SwapTwoNum() {
            Console.WriteLine("请输入第一个数字:");
            int num1 = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入第儿个数字:");
            int num2 = int.Parse(Console.ReadLine());
            DataExchange(num1, num2);
            Console.WriteLine("值传递之后num1={0},num2={1}", num1, num2);
            Exchange(ref num1, ref num2);//传入的时候也要用ref
            Console.WriteLine("引用传递之后num1={0},num2={1}", num1, num2);
        }

结果如下:
在这里插入图片描述

14函数的递归调用

计算一个数的阶乘
1.阶乘

阶乘(!)是小于某个数的所有正整数的乘积;

注意:0既不是正整数,又不是负整数;0是整数;

0!=1

1!=1

2!=2*1!=2

3!=3*2!=6

4!=4*3!=24

5!=5*4!=120

n!=n*(n-1)!

递归代码如下:
注:decimal—高精度浮点数

 //求阶乘
        public decimal Factorial(decimal n) {
            if (n == 1) return 1;
            else return n * Factorial(n - 1);
        }

        public void getJieCheng() {
            Console.WriteLine("请输入一个整数:");
            decimal num = decimal.Parse(Console.ReadLine());
            Console.WriteLine("{0}的阶乘为{1}", num, Factorial(num));
        }

15函数参数输出

求解多个数的乘法运算
代码如下:

//求解多个数相乘
        public void GetMultResult(out int result, params int[] numbers) {
            //params关键字修饰参数只能修饰最后一个且只能有一个,表示之后输入的所有的数,这里就是num1,num2,num3
            //out关键字和ref都是引用传递,不一样的是out的不用初始化,直接声明就可以了
            result = 1;
            foreach (int num in numbers) result*= num;
        }

        public void getMultXiangCheng() {
            Console.WriteLine("请输入第一个数:");
            int num1 = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入第二个数:");
            int num2 = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入第三个数:");
            int num3 = int.Parse(Console.ReadLine());
            int result;
            GetMultResult(out result, num1, num2, num3);
            Console.WriteLine("{0}*{1}*{2}={3}", num1, num2, num3, result);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值