首页 > 编程语言 >C#随记05

C#随记05

时间:2023-03-08 21:57:29浏览次数:31  
标签:Console 05 C# System 参数 using 方法 public 随记

方法

方法在类或结构中声明,声明时需要指定访问级别,返回值,方法名称及方法参数,方法参数放在括号中,并用逗号隔开。括号中没有内容表示声明的方法没有参数。

修饰符 返回值类型 方法名(参数列表){
//方法的具体实现
}

如果方法不需要返回一个值,则使用void关键字。
方法的定义必须在某个类中,定义方法时如果没有声明访问修饰符,方法的默认访问权限为private
如果定义的方法有返回值,则必须使用renturn关键字返回一个指定类型的数据。

public int ShowGoods(){
	Console.writeLine("商品信息");
	return 1;
}

方法的参数

传给方法的值叫实参
接收实参的变量叫形参
形参只在方法内部有效。

  • 值参数
    值参数就是在声明时不加修饰符的参数。它表明实参与形参之间按值传递。
  • ref参数
    ref参数使用形参按引用传递(即使形参是值类型),其效果是:在方法中对形参所做的任何更改都将反应在实参中。如果要使用ref参数,则方法声明和调用都必须显示使用ref关键字。
    变量必须在传递之前赋值。
  • out参数
    定义输出参数,会导致参数通过引用来传递、
  • params参数
    声明方法时,如果有多个相同类型的参数,可以定义为params参数,params参数是一个一维数组,主要用来指定在参数数目可变时所采用的方法参数。

方法的重载

方法重载是指方法名相同,但参数的数据类型,个数,顺序不同的方法。

类的静态成员

共享的变量或者方法用static修饰,它们被称作静态变量和静态方法,也被称为类的静态成员,静态成员是属于类所有的,在调用时,不用创建类的对象,而且直接使用类名调用。

class Program{
	public static int Add(intx, int y){
	return x+y;
	}
	static void Main(string[] args){
	Console.WriteLine("{0}+{1}={2}",23,43,Program.Add(23+34));
	Console.ReadLine();
	}
}

对象的创建及使用

在一类事物中抽象出某一个特例,通过这个特例来处理这类事物出现的问题。

Test test=new Test();

当使用new关键字创建对象后,可使用“对象.类成员”来获取对象的属性和行为。

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

namespace studyDaily
{

    public class cStockInfo
    {
        public string FullName
        {
            get;
            set;
        }
        public void ShowGoods()
        {
            Console.WriteLine("库存商品名称:");
            Console.WriteLine(FullName);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            cStockInfo stockInfo = new cStockInfo();
            stockInfo.FullName = "笔记本电脑";
            stockInfo.ShowGoods();
            Console.ReadLine();
        }
    }
}

对象的销毁

每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址将会被回收。
垃圾:

  • 对象引用超过其作用返回
  • 将对象赋值为null

类与对象的关系

类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。

继承

在程序设计中实现继承,表示这个类拥有它继承的类的所有公有成员或者受保护成员。在面向对象编程中,被继承的类称为父类或基类,实现继承的类称为子类或派生类

继承的实现

派生类可以继承基类原有的属性和方法,也可以增加原来基类所不具备的属性和方法,或者直接重写基类中的某些方法。
C#使用“:”来标识两个类的继承关系,继承一个类时,类成员的可访问性是一个重要的问题。派生类不能访问基类的私有成员,但是可以访问其公共成员。
父类和派生类可以访问protected成员。

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

namespace studyDaily
{
    class Goods {
    public string TradeCode { get; set; }
        public string FullName { get; set; }
    }
    class JHInfo : Goods
    {
        public string JHID { get; set; }
        public void showInfo()
        {
            Console.WriteLine("进货编号:{0}\n商品编号:{1}\n商品名称:{2}", JHID, TradeCode, FullName);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            JHInfo jh = new JHInfo();
            jh.TradeCode = "T100001";
            jh.FullName = "笔记本电脑";
                jh.JHID = "JH0001";
            jh.showInfo();
            Console.ReadLine();
        }
    }
}

只支持单继承,不支持多重继承

base关键字

this关键字代表本类对象,base关键字代表父类对象。

base.property;//调用父类的属性
base.method();//调用父类的方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace studyDaily
{
   class Computer //父类
    {
        public string sayHello()
        {
            return "欢迎使用!";
        }
    }
    class Pad:Computer //子类:平板电脑
    {
        public new string sayHello()
        {
            //子类重写父类方法
            return base.sayHello() + "平板电脑";
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Computer pc = new Computer();
            Console.WriteLine(pc.sayHello());
            Pad ipad = new Pad();
            Console.WriteLine(ipad.sayHello());
            Console.ReadLine();
        }
    }
}

访问父类成员只能在构造函数、实例方法、实例属性中进行。不能在静态方法中使用base

多态

类的多态性是通过在派生类中重写基类的虚方法来实现的。
方法在默认情况下不是虚拟的,但(除了构造函数以外)可以显式地声明为virtual,在方法前面加上关键字virtual,则成该方法为虚方法。

public virtual void Move(){
 Console.WriteLine("交通工具都可以移动");
}

定义为虚方法后,可以在派生类中重写虚方法,重写虚方法使用override关键字

public override void Move(){
	Console.WriteLine("火车都可以移动");
}

标签:Console,05,C#,System,参数,using,方法,public,随记
From: https://www.cnblogs.com/flyall/p/17196197.html

相关文章

  • Mac 安装psysh 详细步骤
    安装psysh是一个交互式PHP解释器,允许您在控制台中测试PHP代码,以下是在Mac上安装psysh的详细步骤:在终端中打开Composer安装文件:curl-sShttps://getcomposer.org/i......
  • Rocky Linux 9 安装 Node.js
    一、概要1.环境(1)RockyLinux9.1(2)Node.js16.0二、安装1.准备(1)更新仓库sudodnfupdate-y(2)安装NPM依赖的构建工具sudoyumgroupinstall'Deve......
  • 远程云服务器上docker安装redis的过程
    首先明确一点,云服务环境你已经安装好了docker 1.进入dockerhub官网查看你所需要的redis的版本信息https://registry.hub.docker.com/ ......
  • ifc4x3 IfcAdvancedBrepWithVoids
    IfcAdvancedBrepWithVoids1语义定义IfcAdvancedBrepWithVoids是高级B-rep的一种专门化,其内部包含一个或多个空隙。空隙表示为闭合壳,其定义使得壳法线指向空隙。 注:根......
  • celery基本用法
    1celery介绍和安装#Celery是什么 -翻译过来是芹菜的意思,跟芹菜没有关系-框架:服务,python的框架,跟django无关-能用来做什么 -1异步任务-......
  • 【C++】购书系统问题测试&功能补充
    代码来源:舍友大一的C++作业【代码存在的问题】在菜单界面选择对应序号时,若输入值非数字,而是字母等其它符号,会导致程序陷入循环,无法正常进入功能的下一步     ......
  • [Primer] 第 14 章 C++ 中的代码重用
    第14章C++中的代码重用14.1包含对象成员的类类初始化列表中有多个项目时,初始化的顺序为在类中的声明顺序而不是列表顺序。14.2私有继承使用私有继承,基类的所有公......
  • Celery框架的基本使用与介绍
    目录Celery介绍、安装、基本使用一、Celery服务1、celery架构2、celery快速使用3、celer包结构【使用包写一个小游戏】Celery介绍、安装、基本使用一、Celery服务什么......
  • 遍历JSONObject、JSONArray (适用任意复杂结构类型)
    https://blog.csdn.net/xiangshui021/article/details/120059652?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7......
  • Xcode - APP语言本地化(国际化)
    前言1-语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言如何实现语言本地化:APP 名称本地化、代......