【C#】菜鸟教程学习笔记(一)

假装是个前言

教程链接:http://www.runoob.com/csharp/csharp-tutorial.html
学C#主要是为了写Unity的脚本,由于之前已经学过C和C++了,这里仅记录一些遗忘了的和新的东西 (`・ω・´)
……感觉这篇里的内容基本跟C++差不多,大致扫一遍就可以了。


一. C#简介

C#语言是.Net框架的一部分
.Net框架是由微软开发,一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。.NET包含许多有助于互联网和内部网应用迅捷开发的技术。
这里写图片描述
(还是不懂

C#一些重要的功能
布尔条件(Boolean Conditions)
自动垃圾回收(Automatic Garbage Collection)
标准库(Standard Library)
组件版本(Assembly Versioning)
属性(Properties)和事件(Events)
委托(Delegates)和事件管理(Events Management)
易于使用的泛型(Generics)
索引器(Indexers)
条件编译(Conditional Compilation)
简单的多线程(Multithreading)
LINQ 和 Lambda 表达式
集成 Windows
(完全不懂


二.C#程序结构

一个C#程序主要包括以下部分:
1. 命名空间声明
2. 一个Class
3. Class方法
4. Class属性
5. 一个Main方法
6. 语句和表达式
7. 注释

一个简单的Hello World程序如下:

//命名空间
using System;
//一个namespace是一系列的类
namespace HelloWorldApplication{
//该命名空间里包含的类
    class HelloWorld{
    //Main方法是程序的入口点
        static void Main(string[] args){
            Console.WriteLine("Hello World");
            //针对VS.NET用户,防止屏幕快速关闭
            Console.ReadKey();
        }
    }
}
//C#是大小写敏感的
//规定所有方法的首字母是大写,所以Main也是大写的
//和Java不同,文件名可以不同于类的名称

感觉比较像Java (:з」∠)


三.C#基本语法

以一个矩形的类为例(跟C++差不多):

//包含命名空间
using System;
namespace RectangleApplication
{
    class Rectangle
    {
        // 成员变量
        double length;
        double width;
        //成员函数
        public void Acceptdetails()
        {
            length = 4.5;    
            width = 3.5;
        }
        public double GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            //{0}是占位符,输出时用后面的参数替换
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea());
        }
    }

    //一个包含Main方法和实例化Rectangle类的类
    //类的实例化:通过已有的类(class)来创建出该类的一个对象(object)
    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Display();
            Console.ReadLine();
        }
    }
}

输出为:

Length: 4.5
Width: 3.5
Area: 15.75

标识符:
必须以字母,下划线或者@开头,第一个字符不能是数字。不包含嵌入的空格和符号,不能是C#关键字,不能与C#的类库名称相同。


四.C#数据类型

在C#中,变量分为三种类型:
1. 值类型
2. 引用类型
3. 指针类型

值类型:

从类 System.ValueType 中派生,可用类型基本同C++。
如需得到某个类型的具体尺寸:sizeof()

namespace DataTypeApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         Console.WriteLine("Size of int: {0}", sizeof(int));
         Console.ReadLine();
      }
   }
}
引用类型:

引用类型不包含存储在变量中的实际数据,但是包含对变量的引用。换句话说,它们指的是一个内存位置。
内置的引用类型分为:object,dynamic和string

对象类型(object):
是C#通用类型系统中所有类型的终极基类,可以被分配任何其它类型的值,但要先进行类型转换。

//将一个值类型转换为对象类型称之为装箱
//反之则为拆箱
object obj;
obj = 100; //这是装箱

动态类型(dynamic):
可以存储任何类型的值在动态数据类型变量中,这些变量的类型检查在运行时发生。

dynamic <variable_name> = value;
dynamic d = 20;

动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

字符串类型(string):
允许给变量分配任何字符串值。字符串类型的值可以通过两种形式进行分配:引号和 @引号。

String str = "runoob.com";

//一个@引号字符串
@"runoob.com";

//字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待
string str = @"C:\Windows";

//上面的等价于
string str = "C:\\Windows";

//@ 字符串中可以任意换行
//换行符及缩进空格都计算在字符串长度之内
string str = @"<script type=""text/javascript"">
    <!--
    -->
</script>";
指针类型:

与C++相同。

char* cptr;
int* iptr;

五.C#类型转换

隐式类型转换:
这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。

显式类型转换:
显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。如:

double d=5673.74;
int i;
i=(int)d;

C#类型转换方法:
1. ToBoolean
2. ToChar
3. ToDateTime
4. ToString
5. …
见:http://www.runoob.com/csharp/csharp-type-conversion.html


六.C#变量

变量的初始化同C++。

接收来自用户的值:
System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中。

int num;
num = Convert.ToInt32(Console.ReadLine());

C# 中的两种表达式: Lvalues 和 Rvalues
lvalue:
lvalue 表达式可以出现在赋值语句的左边或右边。(如变量)
rvalue:
rvalue 表达式可以出现在赋值语句的右边,不能出现在赋值语句的左边。(如数值)


七.C#常量

(感觉基本同C++,如果碰到问题再查。)

定义常量:

const <data_type> <constant_name> = value;

八.C#运算符

(感觉基本同C++,如果碰到问题再查。)

p^q:相同为0,不同为1。
is:判断对象是否为某一类型。

//检查Ford是否是Car类的一个对象
if(Ford is Car) 

as:强制转换,即使转换失败也不会抛出异常。

Object obj = new StringReader("Hello");
StringReader r = obj as StringReader;

复习一遍优先级:
当然如果实际使用中忘了优先级,要多写几个句子就多写几个呗 (ゝ∀・)
这里写图片描述


九.C#判断与C#循环

(感觉基本同C++,如果碰到问题再查。)

foreach循环:
个人感觉也不是很有意义……

    int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };

    foreach (int element in fibarray)
    {
        System.Console.WriteLine(element);
    }
    System.Console.WriteLine();


   // 类似 foreach 循环
   for (int i = 0; i < fibarray.Length; i++)
    {
       System.Console.WriteLine(fibarray[i]);
    }
   System.Console.WriteLine();
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis是一个开源的持久化框架,可以帮助我们将数据从数据库中读取出来,然后转换为Java对象,并将Java对象写入数据库中。 在C#中使用MyBatis,需要先安装MyBatis.Net库,然后在项目中引用该库。接着,我们需要创建一个配置文件,用于配置MyBatis的数据库连接信息、SQL语句等。在配置文件中,我们需要指定一个别名,用于在程序中引用这个配置文件。 接下来,我们需要创建一个映射文件,用于将数据库中的数据映射为Java对象。在映射文件中,我们需要定义一个 resultMap,用于定义Java对象与数据库表之间的关系。我们还需要定义一个 SQL 语句,用于从数据库中读取数据,并将其转换为Java对象。 在程序中,我们需要创建一个 SqlSession 对象,用于执行SQL语句。我们可以通过SqlSession对象调用selectOne、selectList、update、delete等方法,来执行SQL语句,并将结果转换为Java对象或者操作数据库。 下面是一个简单的示例,展示了如何在C#中使用MyBatis: 1. 安装MyBatis.Net库 在Visual Studio中,选择“工具”-“NuGet包管理器”-“程序包管理器控制台”,然后输入以下命令: ``` Install-Package MyBatisNet ``` 2. 创建配置文件 在项目中创建一个名为“SqlMapConfig.xml”的文件,用于配置数据库连接信息、SQL语句等。以下是一个示例配置文件: ``` xml <?xml version="1.0" encoding="utf-8" ?> <sqlMapConfig> <database> <provider name="SqlServer" connectionString="Data Source=localhost;Initial Catalog=mydatabase;User ID=myuser;Password=mypassword;" /> </database> <sqlMap> <map resource="MyMapper.xml"/> </sqlMap> </sqlMapConfig> ``` 其中,provider元素用于指定数据库类型和连接字符串,map元素用于指定映射文件路径。 3. 创建映射文件 在项目中创建一个名为“MyMapper.xml”的文件,用于将数据库中的数据映射为Java对象。以下是一个示例映射文件: ``` xml <?xml version="1.0" encoding="utf-8" ?> <sqlMap namespace="MyMapper"> <resultMap id="MyResultMap" class="MyClass"> <result property="id" column="id"/> <result property="name" column="name"/> </resultMap> <select id="selectById" resultMap="MyResultMap"> SELECT * FROM mytable WHERE id=#id# </select> </sqlMap> ``` 其中,resultMap元素用于定义Java对象与数据库表之间的关系,select元素用于定义SQL语句。 4. 在程序中使用MyBatis 在程序中,我们需要创建一个 SqlSession 对象,用于执行SQL语句。以下是一个示例代码: ``` csharp using IBatisNet.DataMapper; using IBatisNet.DataMapper.Configuration; using IBatisNet.DataMapper.Configuration.Files; // 创建配置文件 DomSqlMapBuilder builder = new DomSqlMapBuilder(); ISqlMapper sqlMapper = builder.Configure(@"SqlMapConfig.xml"); // 执行SQL语句 MyClass obj = sqlMapper.QueryForObject<MyClass>("MyMapper.selectById", new { id = 1 }); ``` 以上是一个简单的示例,展示了如何在C#中使用MyBatis。实际上,MyBatis还有很多其他的用法和功能,需要我们在实际开发中去探索和使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值