习惯了利用Matlab、Bash等面向过程的语言直接对数据或文件操作。由于工作需要,要用到C#语言,什么循环判断以及其它的技术细节都容易理解,但对其面向对象的机制及程序结构比较茫然。网上查了一些资料,有了一个初步的理解,写了一个简单的联系程序,记录如下。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
  /*********************************************************************************/
    public struct myColor
        //一个结构体
    {
        public int red;
        public int green;
        public int blue;
    }
    /***************************************************************************/
    public enum manOrWoman {man,woman} //一个枚举
/********************************************************************************/
    public class Program
    {
        static void Main(string[] args)
            /*Main方法是程序的入口点,C#中必须包含一个Main方法,在该方法中可以创建对象和调用其他方法,
             一个C#程序中只能有一个Main方法,并且在C#中所有的Main方法都是静态的。
             * Main方法必须是类或者结构的静态方法,并且其返回类型必须是int或void*/
            // public:说明Main方法是共用的,在类的外面可以调用整个方法。
            /*static:说明方法是一个静态方法,即这个方法属于类的本身而不是这个类的特定对象。
             * 调用静态方法不能使用类的实例化对象,必须使用类名来调用。*/
            // void:此修饰符说明方法无返回值。
        {
            myColor m; //结构的实例化不用new算符
            m.blue=100;
            m.green=100;
            m.red=100;
            Console.WriteLine("第一个结构体" + Convert.ToString(m.blue));

manOrWoman sex = manOrWoman.man; //枚举的实例
            switch (sex)
            {
                case manOrWoman.man:
                    Console.WriteLine("第一个枚举.{0}",sex);
                    break;
                case manOrWoman.woman:
                    Console.WriteLine("第一个枚举.{0}", sex);
                    break;
            }
                                 
            people ren = new people(); //类的实例,后面有people类
            Console.WriteLine(ren.Say("I like ", "apple!")); //类的方法
            ren.name = "zhangsan"; //类的属性
            Console.WriteLine(ren.name);

animal dog = new animal(); //类的实例,后面有animal类
            Console.WriteLine(dog.GetHashCode());//类的方法,所有的类都继承子object类,也继承了该类的方法,GetHashCode是该类的方法之一
            dog.name = "Tiger"; //animal类继承了people类的属性和方法
            dog.ID = "9527";
            dog.foot = 4;
            Console.WriteLine("The dog's name is {0}, its ID is {1}. It has {2} foot.{3}{4}",
                dog.name,dog.ID,dog.foot,dog.Say("I eat ","bones."),dog.eat("OK!"));
                       
            const double pi = 3.14;
            myfun();
            int num1 = 1, num2 = 2;
            double num3 = 2 * pi;
            int[] num = new int[3] { 4, 5, 6 };
            Console.WriteLine("Do you like fruite?"+qiuhe(num1,num2)+Convert.ToChar(num[2]));
            string str = ipt();
            if (str == "liulian")
            {
                Console.WriteLine("I like liulian too.");
            }
            else
            {
                Console.WriteLine("I lile " + str);
            }
            Console.ReadLine();
        }

//方法一
        static void myfun()
        {
            //没有参数与返回值,当作功能方法用
            //由Main方法直接使用的方法,需要加static,表示静态方法
            //方法定义在类的里面,其他方法的外面
            int a = 111; //方法中定义的变量只在该方法中起作用,称为局部变量
            Console.WriteLine("Hello World!"+Convert.ToString(a));
        }

//方法二
        static string ipt()
        {
            //带有返回值的方法,返回类型由void改为目标类型
            Console.WriteLine("Input:");
            string str = Console.ReadLine();
            return str; //方法结束要有return
        }

//方法三
        static string qiuhe(int num1, int num2)
        {
            //带有参数的方法
            return Convert.ToString(num1 + num2);
        }
    }

/***************************************************************************/
    public class people
        //构造一个类
    {
        //类的属性
        public string name;
        public string ID;

//类的方法
        public string Say(string s1,string s2)
        {
            return s1 + s2;
        }
    }//*/

public class animal:people
    {
        public int foot;
        public int eat(string str)
        {
            Console.WriteLine("I eat "+str);
            return 0;
        }
    }
}

转载于:https://www.cnblogs.com/mphyfin/archive/2013/01/06/2848400.html

我学到的C#——基础相关推荐

  1. 单片机自学多久可以成功?学单片机需要什么基础知识?

    单片机自学完全是可以学会的,现在入门的教程可以用泛滥来形容了. 泛滥不代表讲的不好,有些确实讲的非常不错啊. 我也是自学过来的,下面通过我的经历来解答这些问题. 一.单片机自学多久可以成功 我曾经从零 ...

  2. 零基础可以学python吗-学Python需要什么基础知识?零基础可以学Python吗?

    学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助.但是零基础的学习者就不能学Python了吗?当然不是 ...

  3. 学python需要英语基础吗-学python需要英语基础吗

    很多小伙伴在学python的时候总是担心这样一个问题:我的英语水平不好,单词量又不大,能学好吗?python是不是需要有英语基础啊?对于大家的问题,下面来简单说一下!该节专门写给完全不会英文的小伙伴, ...

  4. python没有英文基础能学吗-学python需要英语基础吗

    很多小伙伴在学python的时候总是担心这样一个问题:我的英语水平不好,单词量又不大,能学好吗?python是不是需要有英语基础啊?对于大家的问题,下面来简单说一下!该节专门写给完全不会英文的小伙伴, ...

  5. 学python需要什么基础知识-学Python需要什么基础知识?零基础可以学Python吗?

    学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助.但是零基础的学习者就不能学Python了吗?当然不是 ...

  6. 学python需要什么基础知识-没学过Python先要学习哪些基础知识?

    零基础学Python应该学习哪些入门知识 关于零基础怎么样能快速学好Python的问题,百度提问和解答的都很多,你可以百度下看看.我觉得从个人自学的角度出发,应从以下几个方面来理解: 1 为什么选择学 ...

  7. java访问修饰符详解——学java,零基础不怕,不只要理论,更要实践+项目,a href=http://www.bjweixin.com太原维信科技提供 /a...

    java访问修饰符详解--学java,零基础不怕,不只要理论,更要实践+项目 <a href=http://www.bjweixin.com>太原维信科技提供 </a> pub ...

  8. python适合零基础的人吗_学Python需要什么基础知识?零基础可以学Python吗?

    学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助.但是零基础的学习者就不能学Python了吗?当然不是 ...

  9. python对英语的要求_学python需要英语基础吗

    在很多人的眼里,学习编程需要英语基础,因为程序代码全是英文字母,如果没有英语基础可能很难学懂编程.程序代码是英文确实没有错,但是也不是必须得懂英语,因为计算机程序有自己语言,并不是我们生活中的英语,对 ...

  10. linux需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

最新文章

  1. 【Linux 内核】实时调度类 ① ( 进程分类 | 实时进程、普通进程 | Linux 内核 SCHED_FIFO、SCHED_RR 调度策略 | 实时调度实体 sched_rt_entity )
  2. 081_html5地理定位
  3. JWT 添加用户名或邮箱 密码校验
  4. php获取页面a标签内容_AKCMS常用标签代码整理
  5. 理解什么是真正的架构,架构需要的几种思维?
  6. 桌面在计算机领域常用来指,桌面在计算机领域常用来指什么
  7. pku acm 2140 Herd Sums http://acm.pku.edu.cn/JudgeOnline/problem?id=2140
  8. Linux 如何安装 SRPM 包(源代码 rpm 软件包,以 .src.rpm 为后缀名)/rpm 格式的源码软件包/源码包
  9. 医疗影像技术简介(X射线,CT,MRI等)
  10. 明日亮相!刘作虎曝一加9RT三大绝活:快、稳、省
  11. Wireshark入门与进阶---数据包捕获与保存的最基本流程
  12. linux socket编程:简易客户端与服务端
  13. mysql 银行卡卡号长度_卡bin查询sql分享
  14. 内蒙古自治区阿拉善盟谷歌高清卫星地图下载
  15. Hadoop YARN(入门) —— Hadoop权威指南5
  16. 匹配滤波器及matlab仿真
  17. 几个常用的后台管理系统
  18. 用java实现楼层导航_楼层导航
  19. 运维小知识---If you insist running as root, then set the environment variable RUN_AS_USER=root......
  20. 被谢耳朵一直嘲笑的MIT,这次发明了黑镜中的“恐怖机器”

热门文章

  1. 慕课网_《Java微信公众号开发进阶》学习总结
  2. 写一个图片预览器(react-native),温习一下初中数学
  3. 关于spring service层的mybatis缓存问题,待解决
  4. STL--Lambdas(二)
  5. 高效搭建Storm全然分布式集群
  6. Spring3.x事务失效的原因以及解决办法
  7. 启用Apache Mod_rewrite模块
  8. 杂志类(CMS)主题使用攻略
  9. 用Everything搜索指定的路径
  10. arp/ip地址/路由--总之很乱