<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Streetw☆</title><link>http://blogs.wankuma.com/torikobito/category/1750.aspx</link><description>Streetw☆さんに書いてもらったエントリです。</description><managingEditor>とりこびと</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>とりこびと</dc:creator><title>おかしな流れの続きです・・・</title><link>http://blogs.wankuma.com/torikobito/archive/2008/05/28/139840.aspx</link><pubDate>Wed, 28 May 2008 23:13:00 GMT</pubDate><guid>http://blogs.wankuma.com/torikobito/archive/2008/05/28/139840.aspx</guid><wfw:comment>http://blogs.wankuma.com/torikobito/comments/139840.aspx</wfw:comment><comments>http://blogs.wankuma.com/torikobito/archive/2008/05/28/139840.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.wankuma.com/torikobito/comments/commentRss/139840.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/torikobito/services/trackbacks/139840.aspx</trackback:ping><description>&lt;p&gt;Streetw☆です。。。&lt;/p&gt;
&lt;p&gt;「&lt;A href="http://blogs.wankuma.com/torikobito/archive/2008/05/20/138474.aspx#FeedBack"&gt;あとで調べます２&lt;/a&gt;」について調べたんですが、長くなっちゃったのでもう一度だけエントリをお願いしました。&lt;/p&gt;
&lt;p&gt;何度もごめんなさいorz&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;「対象のフレームワーク」の指定について、どなたかが仕組みなどについてブログにまとめられていた（確かどこかでセッションされてたと書かれてたような）と思って探してたのですが、まだ見つけられません；＿；&lt;/p&gt;
&lt;p&gt;検索してたら、代わりにこんな資料を見つけました。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;「&lt;a href="http://msdn.microsoft.com/ja-jp/library/bb383796.aspx"&gt;MSBuild で特定の .NET Framework を対象にする&lt;/a&gt;」&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;ちょっと長いけどそこから引用します。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;「ツールセットのバージョンは、Project 要素 (MSBuild) の ToolsVersion 属性を使用してプロジェクト ファイルに指定できます。・・・ソリューションまたはプロジェクトをコマンド ラインでビルドする場合、msbuild.exe に対して ToolsVersion を指定すると、すべてのプロジェクトとそのプロジェクト間の依存関係がその ToolsVersion に基づいてビルドされます。ソリューション内の各プロジェクトの Project 要素 (MSBuild) に固有の ToolsVersion が指定されていても、その値は無視されます。」&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;Σぬ～！？&lt;/p&gt;
&lt;p&gt;TargetFrameworkVersionの他にToolsVersionなんてあるんですか～&lt;/p&gt;
&lt;p&gt;＃「ツールセット」については、リンク先を見てください。&lt;/p&gt;
&lt;p&gt;「対象のフレームワーク」で ".NET Framework 2.0" を指定しても、プロジェクトファイルをメモ帳で開いて見てみると、ToolsVersionは "3.5" になってました。&lt;/p&gt;
&lt;p&gt;ちょっとドキドキしながら、これを "2.0" に変更して保存し、Visual Studio 2008を起動してビルドを実行してみました。そして「出力」ウィンドウを見ると・・・&lt;/p&gt;
&lt;blockquote&gt;------ すべてのリビルド開始: プロジェクト: WindowsFormsApplication1, 構成: Debug Any CPU ------
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Csc.exe /noconfig ・・・（オプションが続く）・・・&lt;/blockquote&gt;
&lt;p&gt;2.0のCsc.exeでコンパイルされてますよ！&lt;/p&gt;
&lt;p&gt;ということは、「&lt;A href="http://blogs.wankuma.com/torikobito/archive/2008/05/20/138474.aspx"&gt;その１&lt;/a&gt;」のコードは "A" が表示されるはずですよね？&lt;/p&gt;
&lt;br /&gt;
&lt;p style="text-align:center;"&gt;&lt;span style="font-size:1.5em;"&gt;実行（≧∇≦）！！&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;blockquote&gt;メッセージボックス＞ B&lt;/blockquote&gt;
&lt;br /&gt;
&lt;p&gt;・・・orz&lt;/p&gt;
&lt;p&gt;あれ？？&lt;/p&gt;
&lt;p&gt;Visual Studioが何か悪さしてるの？と疑って、MSBuild.exeにプロジェクトファイルを渡してビルドしてもらいました。&lt;/p&gt;
&lt;p&gt;・・・でも結果は同じ。ちょっと、ちょっとちょっと。ノシ&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;あきらめムードで&lt;/p&gt;
&lt;p&gt;v3.5\MSBuild.exe /toolsversion:2.0 プロジェクトファイル&lt;/p&gt;
&lt;p&gt;を実行して、できたのを実行しました。&lt;/p&gt;
&lt;br /&gt;
&lt;blockquote&gt;メッセージボックス＞ A&lt;/blockquote&gt;
&lt;br /&gt;
&lt;p&gt;Σわ、不意打ち。&lt;/p&gt;
&lt;p&gt;そういえば、今回のMSBuild.exeの実行時のメッセージは、さっきとどこか違ってました。&lt;/p&gt;
&lt;p&gt;これって、「対象のフレームワーク」を2.0にすればToolsVersionも2.0になって、それがちゃんと機能すればいいのかなとか少し思ったんですが、そうだとvarとか使えなくなっちゃうし、デバッグのとき何かあるかもしれないからダメなのかも、とか考えたりしました。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;えっと、この話は何か参考になりましたでしょうか？&lt;/p&gt;
&lt;p&gt;わたし的にはこんな細かなことはあまり重要じゃないです、実はｗ&lt;/p&gt;
&lt;p&gt;でも、もしかしたらみんな知らないことなのかも、って思うとワクワクしたりしましたｗｗ&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;p style="text-align:center;"&gt;&lt;span style="font-size:1.5em;"&gt;ところで、すとりのＲＳＳ登録してくれた人っています？ｗ&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;では♪&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/torikobito/aggbug/139840.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>とりこびと</dc:creator><title>久しぶりに臨時ニュースをお伝えします。</title><link>http://blogs.wankuma.com/torikobito/archive/2008/05/20/138472.aspx</link><pubDate>Tue, 20 May 2008 01:31:00 GMT</pubDate><guid>http://blogs.wankuma.com/torikobito/archive/2008/05/20/138472.aspx</guid><wfw:comment>http://blogs.wankuma.com/torikobito/comments/138472.aspx</wfw:comment><comments>http://blogs.wankuma.com/torikobito/archive/2008/05/20/138472.aspx#Feedback</comments><slash:comments>158</slash:comments><wfw:commentRss>http://blogs.wankuma.com/torikobito/comments/commentRss/138472.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/torikobito/services/trackbacks/138472.aspx</trackback:ping><description>&lt;p&gt;こんにちは、とりこびと です。久しぶりに臨時ニュースをお伝えします。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt; 2007年3月6日&lt;del&gt;という特になんてことない日&lt;/del&gt;からエントリが開始されたことで有名な 'とりこらぼ。' が、またもや何者かに&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;p style="text-align:center;"&gt;&lt;span style="font-size:2em;"&gt;じゃっく&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;された模様です。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;例によって、TorikoTVではそのときの様子を入手いたしましたのでお聞きください。&lt;/p&gt;
&lt;blockquote&gt;
とりこびと：「ううう&amp;#8230;最近エントリ書けてないなぁ&amp;#8230;。」&lt;br /&gt;
&lt;br /&gt;
ギギギィ&amp;#8230;（←ドアの開く音。）&lt;br /&gt;
&lt;br /&gt;
とりこびと：「ちょ、な、なんですかいきなり！？･･･って、あなたは！！！！」&lt;br /&gt;
XXXXXXX☆：「･･･やるよ。」&lt;br /&gt;
とりこびと：「は？」&lt;br /&gt;
 XXXXXXX☆：「･･･&lt;span style="color: red"&gt;エントリ書いてやるよ。&lt;/span&gt;。」&lt;br /&gt;
とりこびと：「いや、でもそれは、えっと･･･。」&lt;br /&gt;
&lt;br /&gt;
とりこびと：&lt;span style="font-size:1.5em;"&gt;「って、いたたたたた！またですか！！！？また&lt;span style="color: red"&gt;腕固めるん&lt;/span&gt;ですか！！？」&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
 XXXXXXX☆：「&lt;span style="color: red"&gt;あ～、なんかめんどくさい。もういいや、折るわ&lt;/span&gt;。」&lt;br /&gt;
 とりこびと：「いや、ちょっ&amp;#8230;、あ、はい、エントリよろしくお願いします！！！」&lt;br /&gt;
&lt;br /&gt;
&lt;/blockquote&gt;
&lt;p&gt;というわけですので、関係者各位、よろしくお願いいたします～♪&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;←日記カテゴリ追加しました。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/torikobito/aggbug/138472.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>とりこびと</dc:creator><title>まあまあ厳しくして欲しい (3/3) ～現実は甘くない、けど楽しい～</title><link>http://blogs.wankuma.com/torikobito/archive/2007/11/01/105493.aspx</link><pubDate>Thu, 01 Nov 2007 18:33:00 GMT</pubDate><guid>http://blogs.wankuma.com/torikobito/archive/2007/11/01/105493.aspx</guid><wfw:comment>http://blogs.wankuma.com/torikobito/comments/105493.aspx</wfw:comment><comments>http://blogs.wankuma.com/torikobito/archive/2007/11/01/105493.aspx#Feedback</comments><slash:comments>1996</slash:comments><wfw:commentRss>http://blogs.wankuma.com/torikobito/comments/commentRss/105493.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/torikobito/services/trackbacks/105493.aspx</trackback:ping><description>&lt;p&gt;引き続き、居候のStreetw☆がお送りします。&lt;br /&gt;
今回は最終回です。 &lt;span style="color: gray"&gt;最終回ではとうとうあの二人が(ry。&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;これまでのエントリ&lt;/p&gt;
&lt;p&gt;&lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/11/01/105462.aspx"&gt;まあまあ厳しくして欲しい (1/3) ～Option Strict SortOfって？～&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/11/01/105471.aspx"&gt;まあまあ厳しくして欲しい (2/3) ～Option Strict に関連する３つの条件～&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;では、Option Strict に関する理解を私なりに深めてみようとがんばってみました。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;またまたリンク貼らせてもらいますが、今回は &lt;/p&gt;
&lt;p&gt;&lt;A href="http://blogs.wankuma.com/naka/archive/2007/07/15/85243.aspx"&gt;「Option Strict Onをはやらせようとするのはやめておけ２」～中様のブログ～&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
 に素直に従って、「&lt;strong&gt;まあまあ厳しくして欲しい&lt;/strong&gt; 」と願うようになる場面について考えようと思います。&lt;br /&gt;
 &lt;span style="color: #008000"&gt;＃最後まで読んでいただけるとわかりますが、選ばせていただいた場面は&lt;strong&gt;強敵で歯が立ちません&lt;/strong&gt;でしたorz&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;ここで「&lt;a href="http://www.microsoft.com/japan/msdn/vstudio/future/"&gt;&lt;span style="color: blue"&gt;青いヤツ&lt;/span&gt;&lt;/a&gt;」（&lt;span
 style="color: royalblue"&gt;Visual Basic 2008&lt;/span&gt; のことｗ）の登場です。&lt;/p&gt;
&lt;p&gt;さらに今回は中さんのサンプルコードも拝借させてもらいます。&lt;span style="color: #008000"&gt;（強敵なのｗ）&lt;/span&gt;&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span class="src_keyword"&gt;Dim&lt;/span&gt; a() = {&lt;span class="src_keyword"&gt;New&lt;/span&gt; &lt;span class="src_keyword"&gt;With&lt;/span&gt; {.Name = "A", .Age = 31}, &lt;span class="src_keyword"&gt;New&lt;/span&gt; &lt;span class="src_keyword"&gt;With&lt;/span&gt; {.Name = "A", .Age = 31}}
&lt;span class="src_keyword"&gt;Dim&lt;/span&gt; f = &lt;span class="src_keyword"&gt;From&lt;/span&gt; g &lt;span class="src_keyword"&gt;In&lt;/span&gt; a &lt;span class="src_keyword"&gt;Where&lt;/span&gt; g.Age &gt; 20 &lt;span class="src_keyword"&gt;Select&lt;/span&gt; &lt;span class="src_keyword"&gt;New&lt;/span&gt; &lt;span class="src_keyword"&gt;With&lt;/span&gt; {g.Name} &lt;/pre&gt;
&lt;p&gt;中さんも書かれてる通り、このコードは &lt;strong&gt;Option Strict On ではエラー&lt;/strong&gt;になります。&lt;/p&gt;
&lt;p&gt;ここで Option Strict Off としてしまわずに、「Option Strict まあまあ」の出番となります！！ &lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;厳しくできるところは厳しくしておきたいので、まず Option Strict On の状態から始め、エラーになる条件を少しずつ"警告"に変更していくことで「まあまあ」度合いを探ってみたいと思います。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;っと、その前に、Visual Basic 2008 では新機能の &lt;strong&gt;Option Infer On&lt;/strong&gt;（デフォルト）による型推論が行われるため、前回書いたような&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span class="src_keyword"&gt;Dim&lt;/span&gt; test = 1&lt;/pre&gt;
&lt;p&gt;というコードはエラーにはならなくなってます。これは右側から test の型が Integer と推論されるので、&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span class="src_keyword"&gt;Dim&lt;/span&gt; test &lt;span class="src_keyword"&gt;As&lt;/span&gt; &lt;span class="src_keyword"&gt;Integer&lt;/span&gt; = 1&lt;/pre&gt;
&lt;p&gt;に翻訳されるからです。つまりこの場合は "As" は省略されていないことになるので、エラーにはならないのです。 &lt;/p&gt;
&lt;p&gt;Visual Basic 2008 で "As" を省略したときに「暗黙的な型です。オブジェクトと見なされます。」に関する警告やエラーが発生するのは、型推論が行えなかった場合に限られることになるんだと思います。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;話を戻しますね。&lt;/p&gt;
&lt;p&gt;「Option Strict On」の状態でコンパイルしたところ、次の２つのエラーが発生しました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Option Strict On では、すべての変数宣言に 'As' 句が必要です。 &lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Option Strict On では、遅延バインディングを使用できません。 &lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つい先ほど 'As' のエラーは出にくそうなことを書いたのに、早速エラーになってますorz&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;これは以前にとりこびとさんのエントリ&lt;/p&gt;
&lt;p&gt;&lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/07/20/86171.aspx"&gt;「Visual Basic 9.0 って、どんなんかーなぁー♪　その２。- Object and Array Initializers -」&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;でも書かれてましたけど、Visual Basic 2008 ではこの場合には型推論が機能しないようなのです。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;
 仕方がないので「&lt;strong&gt;暗黙的な型です。オブジェクトと見なされます。&lt;/strong&gt;」の「通知」を"&lt;strong&gt;警告&lt;/strong&gt;"に落とします。
 &lt;br /&gt;
 同様に「&lt;strong&gt;遅延バインディングです。実行時の呼び出しに失敗する可能性があります。&lt;/strong&gt;」も"&lt;strong&gt;警告&lt;/strong&gt;"にします。&lt;br /&gt;
こちらは、ソース上の変数 a が Object 型になるのに伴い変数 g も Object 型なので、g.Name などが遅延にあたるんだと思います。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;
 さてこれで大丈夫&lt;span style="color: red"&gt;☆&lt;/span&gt;、って思ったのに、実行するとまたエラーが...orz
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;'Object' から 'Boolean' への暗黙的な変換です。 &lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これが Where 句の「g.Age &gt; 20」のところで発生するようになりました。&lt;/p&gt;
&lt;p&gt;なぜ「'Object' から 'Boolean'」？と思いつつ、仕方がないので「&lt;strong&gt;暗黙的な変換&lt;/strong&gt;」も"&lt;strong&gt;警告&lt;/strong&gt;"
 にします。&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;・・・ということで、ついにすべてが"警告"になってしまいましたorz&lt;/p&gt;
&lt;p&gt;あの～、、このシリーズでは、どれかはエラーのままにしておけることを狙ってたんですけど、思惑が。。。&lt;br /&gt;
 そんな訳で「まあまあ厳しくして欲しい」と思わず思っちゃったりするのは無理でした（&lt;strong&gt;最悪な結末です（ＴーＴ）&lt;/strong&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;・・・っと、ここまでの内容をとりこびとさんに少しだけ見て頂きましたところ、なんとっ、&lt;/p&gt;
&lt;br /&gt;
&lt;p style="margin-left:1em;"&gt;&lt;span style="font-size:1.5em;"&gt;&lt;strong&gt;ただ、Option Strict On ベースで遅延バインディングに関するエラーをなくしたい（Office連携などで）って話は少なからずあると思うのでとてもいい情報なんじゃないかな♪&lt;/strong&gt;&lt;/span&gt;byとりこびとさん&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;というスバラシイお言葉を頂きました。落ち込んでたので&lt;strong&gt;感動です～&lt;/strong&gt;（涙目&lt;br /&gt;
そうなんですよ！わたしもそれが言いたかったんです！！！（絶対違ｗ &lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;Visual Basic をお使いの皆様っ、こんな感じでそれぞれご自分にあった「&lt;strong&gt;まあまあ&lt;/strong&gt;」を見つけてみてはいかがでしょうか♪♪♪&lt;/p&gt;
 &lt;br /&gt;
&lt;br /&gt; 
&lt;p&gt;ということで、最後はどうなるかと思いましたが、&lt;strong&gt;とりこびとさんのおかげ&lt;/strong&gt;で無事にシリーズを終えることができそうです。&lt;/p&gt;
&lt;p&gt;最後までお読みいただきましてありがとうございました。&lt;br /&gt;
 &lt;span style="color: #008000"&gt;
＃もしここだけ読んだのでしたら、最初っから読んでくださいねｗ&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;最後になってしまいましたが、この場をご提供いただきましたとりこびとさん、ありがとうございました！&lt;br /&gt;
そしてこんな形での参加を許していただきました中さんにもとっても感謝です！ &lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;では～&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/torikobito/aggbug/105493.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>とりこびと</dc:creator><title>まあまあ厳しくして欲しい (2/3) ～Option Strict に関連する３つの条件～</title><link>http://blogs.wankuma.com/torikobito/archive/2007/11/01/105471.aspx</link><pubDate>Thu, 01 Nov 2007 18:05:00 GMT</pubDate><guid>http://blogs.wankuma.com/torikobito/archive/2007/11/01/105471.aspx</guid><wfw:comment>http://blogs.wankuma.com/torikobito/comments/105471.aspx</wfw:comment><comments>http://blogs.wankuma.com/torikobito/archive/2007/11/01/105471.aspx#Feedback</comments><slash:comments>408</slash:comments><wfw:commentRss>http://blogs.wankuma.com/torikobito/comments/commentRss/105471.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/torikobito/services/trackbacks/105471.aspx</trackback:ping><description>&lt;P&gt;引き続き、居候のStreetw☆がお送りします。&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;＃とりこびとファンの方、ごめんなさい。&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;前回のエントリ&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/11/01/105462.aspx"&gt;まあまあ厳しくして欲しい (1/3) ～Option Strict SortOfって？～&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;では、「Option Strict &lt;DEL&gt;まあまあ&lt;/DEL&gt; SortOf」の紹介記事の紹介をさせてもらいました。&lt;/P&gt;
&lt;P&gt;今回は Option Strict に関連する３つの条件&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;暗黙的な変換 
&lt;LI&gt;遅延バインディングです。実行時の呼び出しに失敗する可能性があります。 
&lt;LI&gt;暗黙的な型です。オブジェクトと見なされます。 &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;のそれぞれの意味を調べていきたいと思います。&lt;/P&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;まずは Visual Basic プロジェクトのプロパティの「コンパイル」タブにある「条件」のところでＦ１ボタンを押してみます。&lt;/P&gt;
&lt;P&gt;・・・ですが、開いたヘルプには各条件に関する説明は見あたりませんでした。orz&lt;BR&gt;仕方ないので探し回っていると、ちょっと良さそうな次のヘルプが見つかりました。 &lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/3y20cc1z(VS.80).aspx"&gt;MSDN:Visual Basic での警告の構成&lt;/A&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;早速読み始めたところ、Visual Basic コンパイラの警告を活用することの効果として &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;「すっきりとした優れたコードを作成できます」&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;と書かれていました。それって腕次第じゃない？って&lt;STRONG&gt;ツッコミを&lt;SPAN style="FONT-SIZE: 0.7em"&gt;小さく&lt;/SPAN&gt;入れつつ&lt;/STRONG&gt;、読み進めますｗ&lt;/P&gt;
&lt;P&gt;それから、Option Strict などの指定はコンパイルされるものではなく、コンパイラへのコマンド ライン オプションになるものなんだって&lt;STRONG&gt;新発見をしつつ&lt;/STRONG&gt; 、さらに読み進めます。&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;すると中程以降に&lt;STRONG&gt;「警告の種類」&lt;/STRONG&gt;というトピックがあり、関係のありそうな警告が ID 付きで書かれてました。&lt;/P&gt;
&lt;P&gt;ここでネタ元&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/vbteam/archive/2007/09/25/option-strict-custom.aspx"&gt;Option Strict [On|Off|SortOf] ～The Visual Basic Team 様のブログ～&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;に書かれてた .vbproj ファイルの &lt;NoWarn&gt; や &lt;WarningsAsErrors&gt; タグの話を思いだし、それらの値とコンパイルしたときの状況をまとめてみたのが次の表になります。 &lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;＃当該条件以外は"警告"にして確認しています。&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;★暗黙的な変換&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: royalblue"&gt;ソースの一例&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN class=src_keyword&gt;Dim&lt;/SPAN&gt; test &lt;SPAN class=src_keyword&gt;As &lt;/SPAN&gt;&lt;SPAN class=src_keyword&gt;Double&lt;/SPAN&gt; = "1" + 2.0R&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN style="COLOR: royalblue"&gt;コンパイル時&lt;/SPAN&gt;&lt;/P&gt;
&lt;CENTER&gt;
&lt;TABLE style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 200px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;通知を"警告"にした場合&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 500px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left"&gt;警告　 1　　'String' から 'Double' への暗黙的な変換です。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 200px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center" rowSpan=2&gt;通知を"エラー"にした場合&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 500px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left"&gt;エラー 1　　'String' から 'Double' への暗黙的な変換です。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 500px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left"&gt;エラー 2　　警告がエラーとして処理されました: 'String' から 'Double' への暗黙的な変換です。&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;
&lt;P&gt;&lt;SPAN style="COLOR: royalblue"&gt;「通知」の状態と、.vbproj ファイル内の &lt;NOWARN&gt;と &lt;WARNINGSASERRORS&gt;タグの値の関係&lt;/SPAN&gt;&lt;/P&gt;
&lt;CENTER&gt;
&lt;TABLE style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;通知&lt;/TH&gt;
&lt;TH style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;NoWarn&lt;/TH&gt;
&lt;TH style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;WarningsAsErrors&lt;/TH&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;なし&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms184603(vs.80).aspx"&gt;41999&lt;/A&gt;, &lt;A href="http://msdn2.microsoft.com/ja-jp/library/56k670kt(vs.80).aspx"&gt;42016&lt;/A&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;警告&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;エラー&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms184603(vs.80).aspx"&gt;41999&lt;/A&gt;, &lt;A href="http://msdn2.microsoft.com/ja-jp/library/56k670kt(vs.80).aspx"&gt;42016&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;★遅延バインディングです。実行時の呼び出しに失敗する可能性があります。&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: royalblue"&gt;ソースの一例&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN class=src_keyword&gt;Dim&lt;/SPAN&gt; test &lt;SPAN class=src_keyword&gt;As Object&lt;/SPAN&gt; = Button1 
test.Focus()&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN style="COLOR: royalblue"&gt;コンパイル時&lt;/SPAN&gt;&lt;/P&gt;
&lt;CENTER&gt;
&lt;TABLE style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 200px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;通知を"警告"にした場合&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 500px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left"&gt;警告　 1　　遅延バインディングの解決です。ランタイム エラーが発生する可能性があります。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 200px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center" rowSpan=2&gt;通知を"エラー"にした場合&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 500px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left"&gt;エラー 1　　遅延バインディングの解決です。ランタイム エラーが発生する可能性があります。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 500px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left"&gt;エラー 2　　警告がエラーとして処理されました: 遅延バインディングの解決です。ランタイム エラーが発生する可能性があります。&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;
&lt;P&gt;&lt;SPAN style="COLOR: royalblue"&gt;「通知」の状態と、.vbproj ファイル内の &lt;NOWARN&gt;と &lt;WARNINGSASERRORS&gt;タグの値の関係&lt;/SPAN&gt;&lt;/P&gt;
&lt;CENTER&gt;
&lt;TABLE style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;通知&lt;/TH&gt;
&lt;TH style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;NoWarn&lt;/TH&gt;
&lt;TH style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;WarningsAsErrors&lt;/TH&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;なし&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/k0143bcc(vs.80).aspx"&gt;42017&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ywy9xhh8(vs.80).aspx"&gt;42018&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/behk6a16(vs.80).aspx"&gt;42019&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms184634(vs.80).aspx"&gt;42032&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms184631(vs.80).aspx"&gt;42036&lt;/A&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;警告&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;エラー&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/k0143bcc(vs.80).aspx"&gt;42017&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ywy9xhh8(vs.80).aspx"&gt;42018&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/behk6a16(vs.80).aspx"&gt;42019&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms184634(vs.80).aspx"&gt;42032&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms184631(vs.80).aspx"&gt;42036&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;★暗黙的な型です。オブジェクトと見なされます。&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #4169e1"&gt;ソースの一例&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN class=src_keyword&gt;Dim&lt;/SPAN&gt; test = 1&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #4169e1"&gt;コンパイル時&lt;/SPAN&gt;&lt;/P&gt;
&lt;CENTER&gt;
&lt;TABLE style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 200px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;通知を"警告"にした場合&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 500px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left"&gt;警告　 1　　'As' 句のない変数です。Object の型と見なされます。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 200px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center" rowSpan=2&gt;通知を"エラー"にした場合&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 500px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left"&gt;エラー 1　　'As' 句のない変数です。Object の型と見なされます。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 500px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left"&gt;エラー 2　　警告がエラーとして処理されました: 'As' 句のない変数です。Object の型と見なされます。&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #4169e1"&gt;「通知」の状態と、.vbproj ファイル内の &lt;NOWARN&gt;と &lt;WARNINGSASERRORS&gt;タグの値の関係&lt;/SPAN&gt;&lt;/P&gt;
&lt;CENTER&gt;
&lt;TABLE style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;通知&lt;/TH&gt;
&lt;TH style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;NoWarn&lt;/TH&gt;
&lt;TH style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;WarningsAsErrors&lt;/TH&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;なし&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/c101fc44(vs.80).aspx"&gt;42020&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/3f74et5a(vs.80).aspx"&gt;42021&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/4ckd7f50(vs.80).aspx"&gt;42022&lt;/A&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;警告&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; VERTICAL-ALIGN: middle; BORDER-LEFT: gray 1px solid; WIDTH: 100px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;エラー&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;－&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 300px; BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: center"&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/c101fc44(vs.80).aspx"&gt;42020&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/3f74et5a(vs.80).aspx"&gt;42021&lt;/A&gt;,&lt;A href="http://msdn2.microsoft.com/ja-jp/library/4ckd7f50(vs.80).aspx"&gt;42022&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;BR&gt;
&lt;P&gt;この結果からいくつかのことがわかりました。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;私がわかりにくいと感じていた３つめの条件は、「警告の種類」ではより具体的な「宣言に 'As' 句が必要との警告」のことでした。エラーのメッセージもそんな感じですね。 
&lt;LI&gt;WarningsAsErrors って、まず警告のメッセージが出力され、次にそれがエラーとして扱われるという、まさに WarningsAsErrors な動作ですね。 &lt;A href="http://msdn2.microsoft.com/ja-jp/library/2xz9dxe5(VS.80).aspx"&gt;/warnaserror コンパイラオプションのヘルプ&lt;/A&gt;にも、この辺りのことが少し書かれていました。 
&lt;LI&gt;「通知」が"警告"の場合には、どちらのタグにも値が設定されません。コンパイラって、オプションをな～んにも指定しないと、&lt;STRONG&gt;警告はぜ～んぶ出す&lt;/STRONG&gt;のがデフォルトなんですね。それをオプションで抑制したりエラーにしたりと。 
&lt;LI&gt;実際には「警告の種類」に書かれていたものより多くのＩＤが、１つの条件に含まれているようです。&lt;BR&gt;すべてのエラーＩＤはここのツリーの下に書かれているみたいです。&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms235336(VS.80).aspx"&gt;MSDN:Visual Basic コンパイラ メッセージ&lt;/A&gt;&lt;BR&gt;&lt;STRONG&gt;"Error ID: BC41999"&lt;/STRONG&gt;みたいな値をググると、MSDNのヘルプのエラー内容に直接たどり着けそうです ♪♪ &lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;
&lt;P&gt;今回はこの辺りで終わりたいと思います。&lt;/P&gt;
&lt;P&gt;長くなっちゃうので書けなかった&lt;STRONG&gt;今回の本題「それぞれの条件の詳細」&lt;/STRONG&gt;については、各エラーＩＤのヘルプを&lt;STRONG&gt;各自で&lt;/STRONG&gt;見ていただければと思います（ぉ&lt;/P&gt;
&lt;P&gt;これで Option Strict に関係する現状の仕様の把握ができたと思うので、次回の&lt;STRONG&gt;最終回&lt;/STRONG&gt;では、 ようやくシリーズの本題の「まあまあ厳しくして欲しい」と思わず思っちゃうような話ができればと思っています。&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;＃今回は関連のありそうな情報が次から次へと見つかって、どれを書くべきかの取捨選択が大変でした～&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/torikobito/aggbug/105471.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>とりこびと</dc:creator><title>まあまあ厳しくして欲しい (1/3) ～Option Strict SortOfって？～</title><link>http://blogs.wankuma.com/torikobito/archive/2007/11/01/105462.aspx</link><pubDate>Thu, 01 Nov 2007 17:31:00 GMT</pubDate><guid>http://blogs.wankuma.com/torikobito/archive/2007/11/01/105462.aspx</guid><wfw:comment>http://blogs.wankuma.com/torikobito/comments/105462.aspx</wfw:comment><comments>http://blogs.wankuma.com/torikobito/archive/2007/11/01/105462.aspx#Feedback</comments><slash:comments>129</slash:comments><wfw:commentRss>http://blogs.wankuma.com/torikobito/comments/commentRss/105462.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/torikobito/services/trackbacks/105462.aspx</trackback:ping><description>&lt;p&gt;え～とっ、ハジメマシテStreetw☆です。&lt;/p&gt;
&lt;p&gt;とりこびとさんと中様のご厚意により、これから３エントリの間だけ、ここに居候させてもらえることになりました。&lt;br /&gt;
よろしくお願いします。&lt;/p&gt;
&lt;p&gt;タイトルとは違って、甘～い目で見ていただけるとうれしいですｗ&lt;/p&gt;
&lt;p&gt;では早速始めます！&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;ネタ元：&lt;a href="http://blogs.msdn.com/vbteam/archive/2007/09/25/option-strict-custom.aspx "&gt;Option Strict [On|Off|SortOf] ～The Visual Basic Team 様のブログ～&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;ネタ元のブログでは、Visual Basic の Option Strict の指定は &lt;strong&gt;On と Off だけじゃない&lt;/strong&gt;ことが紹介されています。&lt;br /&gt;
それは、そのブログのタイトルの通り&lt;string&gt;「Option Strict SortOf」&lt;/string&gt;です。&lt;br /&gt;
日本語にすると、&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;span style="font-size:1.5em; color:Green;"&gt;Option Strict まあまあ（ＴーＴ） &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;かな？ｗ&lt;br /&gt;
 &lt;span style="color: green"&gt;＃一度、Ｒさんのマネがしてみたかったんですｗ（大きさは控えめｗ）&lt;/span&gt;&lt;/p&gt;
 &lt;p&gt;でもこれはあくまで「もし書くとすれば」という記述のイメージで、実際には&lt;strong&gt;このように書くことはできません&lt;/strong&gt;。&lt;br /&gt;
  &lt;span style="color: green"&gt;
＃もしここまで読んだ段階で「Option Strict まあまあ」を試した人がいたらごめんなさい。&lt;/span&gt;&lt;br /&gt;
  &lt;span style="color: green"&gt;
＃けど、もし試すとしても「Option Strict SortOf」の方ですから、少しあわてすぎですけどねｗ&lt;/span&gt;&lt;/p&gt;
 &lt;br /&gt;
&lt;p&gt;今のバージョンや次の 2008 でそのような記述ができるという訳ではなく、実際の手順としては、プロジェクトのプロパティでこの&lt;strong&gt;「まあまあ」度合い&lt;/strong&gt;の指定を行います。&lt;br /&gt;
 &lt;span style="color: green"&gt;
＃Visual Studio 2005 からできるみたいです。&lt;/span&gt;&lt;/p&gt;
 
&lt;p&gt;Visual Basic プロジェクトのプロパティの「コンパイル」タブを開くと、そこには「条件」の一覧があります。その中で Option Strict に関係するのは上部の３つになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;暗黙的な変換&lt;/li&gt;
&lt;li&gt;遅延バインディングです。実行時の呼び出しに失敗する可能性があります。&lt;/li&gt;
&lt;li&gt;暗黙的な型です。オブジェクトと見なされます。
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;試しに Option Strict のコンボボックスで "On" を選択してみると、この３項目すべての「通知」の状態が"エラー"になり、"Off" を選択するとすべてが"なし"になることが確認できます。&lt;br /&gt;
この「通知」の値はそれぞれの項目ごとに自分で指定できますし、選択肢には他に"警告"があります。&lt;/p&gt;
 &lt;p&gt;つまり、Option Strict の On と Off 以外というのは、この３項目それぞれの「通知」の状態を自分にあった&lt;strong&gt;まあまあ厳しくして欲しい&lt;/strong&gt;程度に変更することなんです！&lt;/p&gt;
 &lt;br /&gt;
&lt;p&gt;え！？、そんな必要ない？ 今のとっても厳しい環境が好きですって？？&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;でも&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:1.2em;"&gt;&lt;A href="http://blogs.wankuma.com/naka/archive/2007/07/15/85243.aspx"&gt;「Option Strict Onをはやらせようとするのはやめておけ２」～中様のブログ～&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;ですよ～&lt;br /&gt;
 &lt;span style="color: green"&gt;＃リンク先のコメント欄にいる「通り＊」は私です。あのときは嫌がってごめんなさいｗ&lt;/span&gt;&lt;/p&gt;
 &lt;p&gt;もし今、Option Strict Off でコーディングしてる人は、この際だから、コンパイラさんにもう少しだけ厳しくしてもらうことにしましょう。&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;第１回はこの辺りで終わりたいと思います。&lt;br /&gt;
次回は「まあまあ厳しくして欲しい」を流行らせるべく、３つの条件のそれぞれの意味の詳細とその効果について、エントリさせていただきたいと思います。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/torikobito/aggbug/105462.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>