こんにちは。
C#初心者+くらいです。
C#でクラスを拡張したいです。
string filename = @"c:\test.txt.lnk";
の場合、
string name = Path.GetFileNameWithoutExtension(filename);
を実行すると、test.txtとなります。testを得たいのに、です。
string filename = @"c:\my.test.txt";
の場合、
string name = Path.GetFileNameWithoutExtension(filename);
name = Path.GetFileNameWithoutExtension(filename);
と実行すると、
my.testを得たいのに、myだけになってしまいます。
そこで、既存のPath.GetFileNameWithoutExtensionメソッドを書き換えたいのですが、このときには、クラスの継承をすればよいのでしょうか?
処理内容は次のようなものだとして、これを既存のプログラムのなかにおくと、他のIOが全滅します。
全滅した理由は、IOを置き換えてしまったので、メソッドが見つからない、ということだろうと思います。
namespace System {
public partial class IO {
public string Path.GetFileNameWithoutExtension(string path) {
return path.Replace(".txt", "");
}
}
}
そこで、継承なら
namespace System {
public partial class IO:IO {
public string Path.GetFileNameWithoutExtension(string path) {
return path.Replace(".txt", "");
}
}
}
なのかとも思ったのですがこれもうまくないようです。
どのようにすれば追記できるのか、ご示唆ください。
http://csharp.sevendays-study.com/ex-day3.html
などを見ると、クラスを継承するには、:でつなげばよいようですが、:でつないでできたクラス名を元のもの(IO)とおなじ(IO)にすることはできないのでしょうか?

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。