我有一个密封的课程如下.我想扩展这个密封类,以便添加一个返回x和y平均值的方法.这不仅仅是使用“this”的扩展方法:(有人可以帮我理解“扩展密封类”的概念及其“实时使用和效益”
class Sealed A { int a; int b; int Add (int x,int y) { return x+y; }}
谢谢….
解决方法 正如@Reedcopsey已经指出的那样,扩展密封类功能的方法是使用 Extension Method.这是一个可以满足您要求的方法:public sealed class MyClass { int a; int b; int Add (int x,int y) { return x + y; }}public static class MyClassExtensions{ public static decimal Average(this MyClass value,int x,int y) { return (x + y)/2M; }}
用法:
var myClass = new MyClass(); // returns 15 var avg = myClass.Average(10,20);
编辑根据要求,这是所有代码.在Visual Studio中创建一个新的控制台应用程序,用下面的代码替换Program.cs文件中的所有代码并运行.
using System;namespace ConsoleApplication1{ public sealed class MyClass { public int X { get; private set; } public int Y { get; private set; } public MyClass(int x,int y) { this.X = x; this.Y = y; } int Add() { return this.X + this.Y; } } public static class MyClassExtensions { public static decimal Average(this MyClass value) { return (value.X + value.Y) / 2M; } } class Program { static voID Main(string[] args) { var myClass = new MyClass(10,20); var avg = myClass.Average(); Console.Writeline(avg); Console.Readline(); } }}总结
以上是内存溢出为你收集整理的c# – 如何扩展密封类 – 需要实时简单的程序说明和使用全部内容,希望文章能够帮你解决c# – 如何扩展密封类 – 需要实时简单的程序说明和使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)