SIKI学习——C#初级教程04

666666666666666666666666666666666666## 1.显示转换和隐式转换

  1. 分类
    隐式转换:编译器自动识别 , 不需要我们写更多的代码
    显示转换:需要我们告诉编译器,什么类型转换成什么类型
    short i=34;
    int j=i;
    当小盒子放入大盒子的时候,可以进行类型转换。
    例子:
    把一个小类型的数据复制给大类型的变量的时候,编译器会自动进行类型的转换。
byte myByte = 34;
int myInt = myByte;

例子:

myByte = (byte)myInt;

当把一个大类型赋值给一个小类型的变量的时候,需要进行显示转换(强制类型转换),就是加上括号里面写需要转换的类型。
在这里插入图片描述
在这里插入图片描述
int i = 33434;
short j = i;
当把大盒子里面的数据放入小盒子里面的时候,有可能小盒子装不下,所以编译器不允许直接这样写。
我们可以通过显示转换的方式
short j = (short)i;

2.使用Convert命令进行显示转换

前面说的显示转换跟隐式转换都是针对于数字来说的。
如果要把一个数字字符串转换成一个数字类型(整形或者浮点型),就要用到Convert里面的方法
在这里插入图片描述

string str = "123";
int num = Convert.ToInt32(str);

当字符串里面存储的是整数的时候,就可以转化为int类型,否则出现异常,当字符串里面是一个小数的时候,就可以转化为double类型。

int myNum = 2345;
它可以把一个int,float,double,byte类型转换成字符串。
string str2 = Convert.ToString(myNum);
string str3 = myNum + "";
一个int,float,double类型直接加上一个空的字符串,相当于把一个数字转化成一个字符串。

装箱和拆箱(先写这里以后再改)
在这里插入图片描述

3.复杂的变量类型——枚举,结构和数组

除了简单的变量类型之外,C#还提供了3个复杂的变量:枚举,结构和数组。
一.枚举类型
枚举类型的定义
enum < typeName >{
< value1 >,
< value2 >,
< value3 >,

< valueN>
}
枚举类型的声明 < typeName > < varName >;
枚举类型的赋值< varName >=< typeName >.< value >;
1.为什么使用枚举类型
在游戏中我们可以定义一个int类型来存储状态 0 游戏暂停 1游戏失败 2游戏胜利 3开始菜单,但是这样不容易阅读,而且容易出错。
这个时候我们通过枚举类型来解决
enum GameState{
Pause,
Failed,
Success,
Start
}
在游戏中定义一个 GameState state = GameState.Start;

namespace 初级教程练习01
{

    enum GameState:byte//修改该枚举类型的存储类型,默认为int
    {
        Pause=100,//默认为0,可以自己修改,一般不改。往下依次递增
        Failed,
        Success,
        Start
    }
    class Program
    {
        static void Main(string[] args)
        {
            //GameState state = GameState.Start;
            //if (state==GameState.Start)//枚举类型作比较
            //{
            //    Console.WriteLine("当前游戏状态为开始状态");
            //}
            GameState state = GameState.Start;
            int num = (int)state;
            Console.WriteLine(num);
            Console.ReadKey();
        }
    }
}

2.枚举的其他内容
枚举类型中的每一个值,其实都是一个整数,默认为int类型
在这里插入图片描述
默认情况下枚举类型中的值从0开始,我们可以直接在枚举类型定义的时候 使用=运算符给每一个枚举指定一个特定的值
二.结构/结构体
如果我们要表示一个向量的话 需要定义,三个float类型 x y z
这样比较麻烦,不方便管理,我们可以使用结构
定义结构
struct < typeName >{
< memberDeclarations >
}
其中< memberDeclarations >是结构体的成员,每个成员的声明如下
< type > < name >;
struct Vector3{
float x;
float y;
float z;
}

namespace 初级教程练习01
{
    //我们可以把结构体当成几个类型组成了一个新的类型
    //比如下面的这个就是使用了3个float类型的变量来表示一个坐标类型。
    struct Position
    {
        public float x;
        public float y;
        public float z;
    }
    class Program
    {
        static void Main(string[] args)
        {
            //当使用这个结构体声明变量的时候,相当于使用结构体中所有的变量去声明。
            Position enemyPosition;
            enemyPosition.x = 34;//可以通过加上属性名来访问结构体中的变量。
            //使用结构体让程序变得更清晰
            Position enemy2Position;
            Console.ReadKey();
        }
    }
}
namespace 初级教程练习01
{
    enum Direction
    {
        West,
        North,
        East,
        Sourth
    }
    struct Path
    {
        public float distance;
        public Direction dir;
    }
    class Program
    {
        static void Main(string[] args)
        {
            Path path1;
            path1.dir = Direction.East;
            path1.distance = 1000;
            Console.ReadKey();
        }
    }
}

三.数组
前面所有的类型都有一个共同点:他们都存储一个值(结构存储一组值),这样会带来不方便,假如我们要存储几个类型相同的值。
案例:我们要存储玩游戏10次的得分:
int score1 = 34;
int score2 = 34;
int score3 = 56;

int score10=3434;
另外一种方式是使用数组,数组的声明
< baseType >[] < name >;
数组是一个变量的索引列表,这个索引是一个整数,第一个条目的索引是0,第二个是1,以此类推…
int[] scores; 声明了分数的数组(int类型的数组)

1.数组的初始化
int[] scores;
第一种方式
scores ={34,34,3,43,43,4,34};
第二种方式
scores = new int[10]; 里面的每一个元素按照类型的默认值赋值
第三种方式
scores = new int[10]{123,12,34,56,77,89,85,6,45634,34};
数组的访问
< arrayName >[条目索引]

namespace 初级教程练习01
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] Score01 = {23,34,56,76,68,87 };//使用这种方式赋值的时候,一定要注意在声明数组的时候赋值。
            int[] scores02 = new int[10];
            int[] scores03;
            scores03 = new int[10];
            int[] scores04 = new int[3] { 1,3,2};
            Console.WriteLine(Score01[10]);//当我们访问一个索引不存在的值的时候,会出现异常exception。
            Console.ReadKey();
        }
    }
}
namespace 初级教程练习01
{
    class Program
    {
        static void Main(string[] args)
        {
            //字符数组
            char[] charArray = new char[2] { 'a','b'};
            Console.WriteLine(charArray[0]);
            //字符串数组
            string[] names = new string[] { "awf","法华寺","嘿嘿"};
            Console.WriteLine(names[0]);
            Console.ReadKey();
        }
    }
}

2.数组的遍历
遍历数组中的每一个元素并输出
第一种方式for
for(int i =0;i<array.Length;i++){
}
第二种方式while循环
int i=0;
while(i<array.Length){
//use array[i]
i++;
}
第三种方式foreach
foreach(int temp in array){
}

namespace 初级教程练习01
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] scores = { 23,34,25,24,23,234,45};
            for (int j=0; j < scores.Length; j++)
            {
                Console.WriteLine(scores[j]);
            }
            int i = 0;
            while (i<scores.Length)
            {
                Console.WriteLine(scores[i]);
                i++;
            }
            foreach (var item in scores)//foreach会依次取到数组中的值,然后赋值给temp,然后执行循环体
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis Plus是一个基于MyBatis的增强工具,旨在简化MyBatis的开发。它提供了一些便捷的功能和增强的功能,使得我们可以更加高效地进行数据库操作。 要开始使用MyBatis Plus,首先需要添加相关的依赖。可以在项目的构建工具(如Maven或Gradle)中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本号</version> </dependency> ``` 接下来,需要配置MyBatis Plus的相关配置。可以在项目的配置文件(如application.properties或application.yml)中添加以下配置: ```properties # 数据库连接配置 spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=root spring.datasource.password=123456 # MyBatis Plus配置 mybatis-plus.mapper-locations=classpath:mapper/*.xml mybatis-plus.type-aliases-package=com.example.entity ``` 这里的配置示例是使用MySQL数据库,你可以根据实际情况修改。 接着,需要创建实体类和Mapper接口。实体类用于映射数据库表,Mapper接口用于定义数据库操作方法。 ```java // 实体类示例 @Data @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String username; private Integer age; } // Mapper接口示例 public interface UserMapper extends BaseMapper<User> { } ``` 以上示例中,使用了Lombok库的@Data注解来自动生成getter、setter等方法,还使用了MyBatis Plus提供的@TableId和@TableName注解来指定主键生成策略和数据库表名。 最后,在业务代码中使用MyBatis Plus进行数据库操作。可以通过自动注入Mapper接口来进行操作,例如: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public List<User> getAllUsers() {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值