大家好我是学习java时长两年半的C#实习生金某,时值当下荆楚大疫,能有工作已是不易,工资不高,难的心安。
因为是没有学过C# ASP.NET 的,所以在网上四处找教程学习,同时也分享一下自己的学习记录和感慨。
首先是这样的哈,C#是微软继C/C++后的一种面向对象的高级编程语言,其即拥有面向对象的易理解特性又拥有C/C++的指针功能,年代略微久远,但是俗话说得好,没有最差劲的语言只有最差劲的程序员,遇到问题就学习!!!奥利给
当然学习这门语言首先就是了解程序结构,数据结构,基本数据类型,以及语法(至于底层的编译原理什么的可以将这门语言学好之后慢慢去理解)
下面就给大家贴一段非常简单的代码
//导入系统包
using System;
//命名空间
namespace demo
{
//类名
class Hello
{
//Main函数
static void Main(string[] args)
{
//写一行HelloWorld(万能HelloWorld)
Console.WriteLine("Hello World!");
//从键盘读取一行字符
Console.ReadLine();
}
}
}
上面就是这个C#程序的基本结构,然后就是数据类型,给读者简单介绍一下常用的数据类型
- int-长整型
- long-整形
- float-单精度形,精确到小数点后7位
- double-双精度形,精确到小数点后14位
- string-字符串类型
- char-字符类型
- bool-布尔类型-值只有true 或者false=既成立或者不成立,正确或者不正确
因为时间原因这里一切从简,详尽的解释将在后面补上
然后简单的讲解一下if_else分支和switch分支(如果有编程基础,这一段和循环可以直接跳过,直接看面向对象的特性)
using System;
namespace dmeo2
{
class Dmeo
{
static void Main(string[] args)
{
int num = 10;
if(num > 1)
{
Console.WriteLine("大于1");
}
else
{
Console.WriteLine("小于1")
}
//从if关键字开始就是我们的if_else代码
//如果if后面大括号中要执行的代码只有一行
//那么可以不写{}大括号
//然后在给大家展示一个三目运算符
num <= 10 ? Console.WriteLine("成立") : Console.WriteLine("不成立") ;
//然后展示一个switch分支结构
switch(num)
{
case 10 :
Console.WriteLine("num = 10");
break;
case 20 :
Console.WriteLine("num = 20");
break;
default:
Console.WriteLine("条件均不满足时默认执行");
break;
//解释一下这里为什么每一个都要加 break; 关键字
//如果不加这个break那么当他满足第一个=10条件的时候
//他会继续向下执行,如果条件满足,将会继续执行下一个case
//如果这里只想要一个处理方案,那么就必须写个break来中断switch
}
}
}
}
刚才写代码有点上头,突然想到,if switch是可以分支选择的,但是条件判断怎么说呢?:
上面代码中Main函数中的if后面和switch后面的括号里面的内容就是条件,条件一般是bool类型,如果有两个数字型(int/long/flaot/double)进行对比,就使用一下的判断表达式:
>= 大于等于
<= 小于等于
== 等于
如果有多个条件需要连接,一下是最常见的连接方式
&& 两个条件都满足时 返回true
|| 两个条件中的一个满足 返回true
(注释一下啊,因为默认大家都知道基本编程,所以基础编程里面的循环分支选择这些结构不会怎太细致的去说)
如果有需要的话,可以百度搜索C#菜鸟编程或者自行购买C#相关教材
循环:
using System;
namespace demo3
{
class Demo3
{
static void Main(string[] args)
{
int sum = 0;
//for循环
for(int i = 0;i < 100;i++)
{
sum += i;
}
Console.WriteLine("1-100的累加和为{0}",sum);
while(sum < 1000)
{
//条件是sum自增小于1k时执行循环
Concole.WriteLine("whilte loop {0}",sum++);
}
Console.WriteLine("sum = {0}",sum);
}
}
}
解释都写在注释里面的,然后就可以讲一讲C#的面向对象特性了,跟大多数语言都是一样的,拥有封装继承多态这样的特性,
接下来就写个简单的代码演示一下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//以上code是调用类库
//命名空间
namespace ConsoleApplicationDmeo
{
/**
* 利用get和set属性来构造一个对象和其属性值的方法如此类中的写法
*/
class myObj
{
//面向对象封装特性
private int id;
private string name;
private int age;
private char sex;
//写一个构造函数,可以在实例化对象的时候进行参数的传递,这里是声明的无参数的构造函数
public myObj()
{
Console.WriteLine("构造函数被调用");
}
//当一个函数被private修饰的时候,它是私有的 只能在当前类访问
//所以需要以下的代码从class外部的访问私有属性
//C#的getset函数也是属性,所以写法略有不同,如下所示
public int ID
{
get { return this.id; }
set { this.id = value; }
}
public string Name
{
get { return this.name; }
set { this.name = value; }
}
public int Age
{
get { return this.age; }
set { this.age = value; }
}
public char Sex
{
get { return this.sex; }
set { this.sex = value; }
}
//一个用来展示内部数据的函数
public void display()
{
Console.WriteLine("this is my first object [id = {0},name = {1},age = {2},sex = {3}]", this.id, this.name, this.age, this.sex);
}
}
class Sharp_Private
{
static void Main(string[] args)
{
Console.WriteLine("Hello world\nand now i am start my first program\nintpu 110 to begin");
myObj mo = new myObj();
mo.ID = 110;
mo.Name = "demo";
mo.Age = 28;
mo.Sex = 'm';
mo.display();
Console.ReadLine();
}
}
}
然后简单的解释一下继承和多态特性
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplicationDmeo
{
//定义一个动物类
class Animal
{
protected string name;
protected string hobbit;
public string Name
{
get { return this.name; }
set { this.name = value; }
}
public string Hobbit
{
get { return this.hobbit; }
set { this.hobbit = value; }
}
public void printInfo(){
Console.WriteLine("{0}的爱好是{1}",this.name,this.hobbit);
}
}
//定义狗类继承了Animal
class Dog : Animal
{
//public string Name
//{
// get { return this.name; }
// set { this.name = value; }
//}
//public string Hobbit
//{
// get { return this.hobbit; }
// set { this.hobbit = value; }
//}
}
//定义猫类继承了Animal
class Cat : Animal
{
//public string Name
//{
// get { return this.name; }
// set { this.name = value; }
//}
//public string Hobbit
//{
// get { return this.hobbit; }
// set { this.hobbit = value; }
//}
}
//这里可以看到继承自Animal的子类均没有写相关的函数(被注释了)
class Sharp_Extends
{
static void Main(string[] args)
{
Console.WriteLine("关于继承/多态特性的代码片段");
//这里是继承特性的展示
/*
* 即便我们派生类(子类)中没有写入函数,但是依旧可以访问,这就是继承特性
* 继承是指子类继承了父类,可以访问父类中被protected/public关键字修饰的属性或者函数
* 关键字:
*
*/
Dog dog = new Dog();
dog.Name = "狗类";
dog.Hobbit = "吠";
Cat cat = new Cat();
cat.Name = "猫类";
cat.Hobbit = "玩";
dog.printInfo();
cat.printInfo();
//多态:
/*
* 这里是多态特性的演示,多态是指在同一条继承链上或者interface的实现类上
* 可以通过父类去new一个子类的特殊写法
* 具体详解后面在讲
*/
Animal _dog = new Dog();
_dog.Name = "多态狗";
_dog.Hobbit = "粑粑";
_dog.printInfo();
Console.WriteLine("-----");
Console.ReadLine();
}
}
}
关于C#的初学就先分享到这里,后续会持续进行补充修改,并发表关于C#网络编程,多线程,IO流这几个方面的高级编程
如果上述内容有误,请一定指正,如果想深入沟通交流请发送邮件到
iziro4h@qq.com
谢谢您的浏览,要是觉得还行,帮金老师点个赞吧