コンテンツへスキップ
ものがたり
戻る

2005-10-21

そこで持ち出すべきは著作権法じゃなくて刑法233条だろ。著作権だともしかしたら負けるよ??

これはフォント操作に関する「プログラム」の価格が、著作権者の単なる主張どおりの金額(おれのもってる著作物のライセンス利用料はひゃくおくえんだからな)ではなく、実質相当対価をもとに判断される事例になる可能性は高い。定価のうちプログラムの著作物の開発コストは1本あたりまず10000円に満たないと思われる(\1980でもあり得ない価格だろう)。

System.Voidのインスタンスを作る

update: いや、Activate.CreateInstance(typeof(void))で普通に作れるようです(つまり↓のActivate.CreateInstance()でコケるというのは間違いみたい)。

System.Voidのインスタンスってどうやったら作れるんでしょうね? 以下WinFXのXmlFormatterを使った例:

using System;  

using System.Runtime.Serialization;  

using System.Xml;

public class Test
{
public static void Main ()
{
using (XmlReader xr = XmlReader.Create (new StringReader (""))) {
xr.MoveToContent ();
XmlFormatter f = new XmlFormatter ();
object o = f.Deserialize (xr, typeof (void), true);
Console.WriteLine (“{0} {1}”, o.GetType (), o);
}
}
}

よい子はこんなコードを書いちゃいけません

Activator.CreateInstance()ではコケるので、予想としては「DynamicMethodを使って直接newobjしている」かな(未確認)。ILならだいぶ何でもアリだし。

最近genericsなコードを少なからず書いているせいか、イイ感じにgmcsのバグがぽんぽんと出てくる。自分でもライトな奴は内部構造が良く分からないままに直しているのだけど、この辺辺りは全然まともに直らず…。Martinが気まぐれで直していく速度には全くかなわない。とりあえずドイツの悪天候を祈る。それが僕に出来ること。あと が直ってくれればだいぶ助かるんだけどなぁ。

やっべ。Duncanと「まいっちんぐ」がOKで”Hashitthingu”がNGな語句構造について話してたらもうこんな時間ですよあんた。日々こんなんばっかやな。


コメント

moceanstar — 10/21/2005 04:04:10

なぜAtsushiEnoさんって憲法や法律にもお詳しいのですが?それと、左のバーが邪魔で本分読めないんですが、どうしたらいいですか(ServiceModelExtensionConfigurationElementCollection)。

atsushieno — 10/21/2005 04:36:48

えっと、特別に詳しいとは思いませんけど(憲法は特に)、なんちゃって法学部卒ですから…

長いのはタイトル変えてみました。

NyaRuRu — 10/21/2005 10:42:54

TechEd Yokohama 2005 で波村さんに同じような質問をしたような記憶が……あれは飲み会に行く途中だったっけか.
System.Void は特別扱いされていて,(少なくとも Microsoft の) CLR ではインスタンスを作れないという話だったと思うんですが,どうなんでしょね?

atsushieno — 10/21/2005 12:40:06

それが実際に↑のコードを使うと作れちゃうんですねー。ちなみにWinFX September CTPなので、.net beta2上での話です。ILのレベルで実行することは出来ちゃいそうな気がします。PEVerifyしたらコケるかも。

ladybug — 10/21/2005 13:19:26

MS CLR 1.1 だと Activator.CreateInstance(typeof(void)) で void のインスタンス作成できちゃうんですけどね。
new void() って書いたら CS0673 ですけど。

atsushieno — 10/21/2005 14:01:36

あれ、.NET 2.0のActivator.CreateInstance (typeof (void))で生成できますね…Activator.CreateInstance()がコケるというのは、単なる見間違いか、CreateInstance(typeof(void), false)に相当するコードだけ確認してしまったか、ですね :-(


この記事を共有:

前の記事
System.Voidのインスタンスを作る
次の記事