@ReedCopseyがすでに指摘しているように、封印されたクラスの機能を拡張する方法は、Extensionメソッドを使用することです。これがあなたが求めていることをするものです:
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();
}
}
}