C#编程-实现函数重载

这篇具有很好参考价值的文章主要介绍了C#编程-实现函数重载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C#编程-实现函数重载,C#编程,c#

C#编程-实现函数重载,C#编程,c#

考虑一个示例:您必须编写一个程序来实现计算器的功能。计算器执行各种运算,例如数字的加、减及乘等。可以对任何类型的数据执行这些运算。这是否意味着您必须定义单独的函数名(如addInteger、addFloat和addDoublie)对每种此类数字执行加法运算?答案是不需要。您可以通过使用函数重载的概念来使用同一函数名对所有类型的数据执行加法运算。

函数重载是实现多态性的最常用方式。您可以通过在类中定义两个或更多同名函数来实现函数重载。但是,函数的每个定义必须在其函数签名中不同。以下代码显示了函数重载的用法:

	using System;
	namespace CalculateMax
	{
		class CalculateMax
		{
			public int Max(int number1, int number2)
			{
				if(number1 > number2)
				{
					return number1;
				}
				else
				{
					return number2;
				}
			}
			public float Max(float number1,float number2)
			{
				if( number1 > number2 )
				{
					return number1;
				}
				else
				{
					return number2;
				}
			}
		}
		class MaxCalc
		{
			static int Main(string[] args)
			{
				CalculateMax calc = new CalculateMax();
				Console.WriteLine("{0}",calc.Max(5.4F,8.6F));
				//Both function calls differ
				Console.WriteLine("{0}",calc.Max(19,12));
				//only in their parameters
				Console.ReadLine();
				return 0;
			}
		}
	}

在上述代码中,Max()方法啊显示了两个数number1和number2中最大的一个数字。Max()方法通过传递整数和浮点值给它来重载。

下图显示了上述代码的输出。

C#编程-实现函数重载,C#编程,c#
除了函数重载,您也可以重载构造函数。

小问题:
以下哪个选项表示函数重载?(选择所有使用的项)
a.void Dispaly(int x, int y, float z){ }
void Display( int x, int y){ }
b.int Display ( int x ){ }
void Display( int x ){ }
c.float Display( float x, int y){ }
float Display( int x,float y){ }
d.void display( float x, int y){ }
void Display( int x, float y){ }
答案:
a.void Dispaly(int x, int y, float z){ }
void Display( int x, int y){ }
c.float Display( float x, int y){ }
float Display( int x,float y){ }

实现函数重载

构造函数是特殊类型的方法,因此也可被重载。重载构造函数在C#中常用于在创建对象时提供灵活性。

以下代码显示重构函数的用法:

	using System;
	class CalculateNumber
	{
		private int number1, number2, total;
		//Default constructor
		public CalculateNumber()
		{
			number1 = number2 = total = 0;
		}
		public CalculateNumber(int num1,int num2)  /*Two-argument constructor */
		{
			number1 = num1;
			number2 = num2;
			total = 0;
		}
		public void AddNumber()
		{
			total = number1 + number2;
		}
		public void DisplayNumber()
		{
			Console.WriteLine("The sum of two numbers is {0}",total);
		}
	}
	class CalNum
	{
		static int Main(String[] args)
		{
			//Default constructor invoked
			CalculateNumber cal1 = new CalculateNumber();
			//Parametric constructor
			CalculateNumber cal2 = new CalculateNumber(4,3);
			cal1.AddNumber();  //add() invoked to calculate sum of members
			cal1.DisplayNumber();
			cal2.AddNumber();  //add() invoked to calculate sun of members
			cal2.DisplayNumber();
			return 0;
		}
	}

在上面的代码中,为对象call调用默认构造函数,因为它未使用任何参数创建。为cal2对象调用带参数化构造函数,因为它使用参数创建。

下图显示了上述代码的输出。
C#编程-实现函数重载,C#编程,c#

小问题:
以下哪个关于构造函数的语句时正确的?(选择所有使用的项)
a.构造函数不能被重载
b.如果没有为类提供构造函数,则编译器创建和执行默认构造函数。
c.不能显示调用构造函数
d.构造函数不能返回值
答案:
b.如果没有为类提供构造函数,则编译器创建和执行默认构造函数。
c.不能显示调用构造函数
d.构造函数不能返回值

C#编程-实现函数重载,C#编程,c#文章来源地址https://www.toymoban.com/news/detail-822952.html

到了这里,关于C#编程-实现函数重载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++初阶】类和对象——操作符重载&&const成员函数&&取地址重载&&日期类的实现

    ========================================================================= 个人主页点击直达: 小白不是程序媛 C++系列专栏: C++头疼记 ========================================================================= 目录   前言: 运算符重载 运算符重载  赋值运算符重载 前置++和后置++重载 const成员 取地址及cons

    2024年02月06日
    浏览(42)
  • 【C++】STL——string的模拟实现、常用构造函数、迭代器、运算符重载、扩容函数、增删查改

    string使用文章   这里我们 实现常用的第四个string(const char* s)和析构函数     拷贝构造函数实现:   在堆上使用new为当前对象的成员变量_str分配内存空间,大小为s._capacity + 1字节,即字符串的容量加上一个结束符\\0的空间。   我们使用深拷贝而不是浅拷贝,

    2024年02月15日
    浏览(34)
  • 【C++】中类的6个默认成员函数 取地址及const成员函数 && 学习运算符重载 && 【实现一个日期类】

    1.1 运算符重载【引入】 C++为了增强代码的可读性引入了 运算符重载 ,运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。 函数名字为: operator后面接需要重载的运算符符号。 函数原型:

    2024年02月21日
    浏览(38)
  • 【C++】:拷贝构造函数与赋值运算符重载的实例应用之日期类的实现

    🔑日期类的实现,将按以下声明依次进行,其中因为Print函数比较短,直接放到类里面让其变成内联函数 🔑而我们实现日期类经常要用到某月有多少天,在这里先把获得某月有多少天的函数实现出来。实现时先检查传参有没有问题,在注意把数组设置成静态的,出了作用域

    2024年02月08日
    浏览(57)
  • 【C++】STL——list的模拟实现、构造函数、迭代器类的实现、运算符重载、增删查改

    list使用文章 析构函数   在定义了一个类模板list时。我们让该类模板包含了一个内部结构体_list_node,用于表示链表的节点。该结构体包含了指向前一个节点和后一个节点的指针以及节点的值。在list中保存了链表的头节点指针和链表长度大小。       因为list的底层实现

    2024年02月14日
    浏览(38)
  • 【与chatGPT讨论TypeScript中重载与c#语言中重载的问题】

    在 TypeScript 中,函数重载是指可以定义多个具有相同名称但参数列表或返回类型不同的函数。函数重载的主要目的是为了让编译器可以对函数调用进行类型检查,从而提高代码的安全性和可维护性。 一个函数的重载需要在同一个作用域中定义,使用 function 声明多个具

    2024年02月04日
    浏览(26)
  • C#基础学习_方法的重载

    在类中定义方法的一般方式(不使用重载时):

    2024年02月13日
    浏览(30)
  • 运算符重载和重载函数

    1.运算符重载的意义 C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。 函数名字为:operator后面接需要重载的运算符符号。 函数原型:返回值

    2024年02月06日
    浏览(34)
  • C#编程-实现委托

    委托是可以存储对方法的引用的对象。在C#中,委托允许您动态地改变类中方法的引用。 考虑咖啡售货机的示例,它配置不同口味的咖啡,例如卡布奇诺咖啡和黑咖啡。在选择所需口味的咖啡时,售货机决定混合各种成分,例如奶粉、咖啡粉、热水、卡布奇诺咖啡粉。所有的

    2024年02月02日
    浏览(28)
  • C#编程-实现继承

    C#允许您通过扩展现有类的功能以创建新类来实现继承。 使用以下语法在C#中创建派生类: 确定继承的层次结构 要确定继承层次结构,必须检查派生类与基类之间的关系种类。确保派生类是一种基类。 请考虑以下场景。您有Emoloyee、Manager和Designer类。您需要Employee类的属性在

    2024年01月25日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包