• ベストアンサー
  • すぐに回答を!

C# stringとSystem.String違い

C#のstringとSystem.Stringこの2つの違いが分かりません。 どのような時に使い分けをすれば良いのでしょうか。 そもそも別のものなのでしょうか? > stringは、C#のネイティブなデータタイプです。ただし、すべての基本タイプと同様に、stringは、実際には.NETライブラリのタイプの別名です。この場合はSystem.Stringです。 > http://www15.ocn.ne.jp/~sunsan-k/sunsank.files/sunsan/d-net/Csharp_index/Chap2/C2-19.html ここに書いている意味はstringとSystem.Stringは同じという意味なのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数11606
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

string と System.String は型として使われる限り単なる別名なので同じものです。 foo.System.String みたいなものが用意されて foo 名前空間内から使うような場合は異なりますが,特殊例過ぎるのでこれは考えないものとします。 コンパイラは,ソース上の型として string と書かれているものは,System.String とかかれているものとして処理します。 # 正確には "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" という型 (.NET 4 の場合) これは,SDK 付属の逆アセンブラでコードを見ると,string を使っても System.String を使っても同じコードになることから確認できます。 同じように,int は System.Int32 の別名ですし,bool は System.Boolean の別名です。 使い分けは,特別決まりはありません。 唯一,メソッド名等に使う場合には言語固有の名称を避ける (CLR の名前を使う),というのはあります。 MSDN: 一般的な名前付け規則 http://msdn.microsoft.com/ja-jp/library/ms229045.aspx 具体的には, ・ToInt よりも, ・ToInt32 の方が好ましい,ということです。 # 上側の名前付け規則だと,Visual Basic においては ToInteger であるべき,となる。 私は,static メソッドの呼び出しに使う場合は CLR の名前を使い,それ以外では言語固有の名称を使っています。 書籍によっては,常に CLR の名前を使うべき,という物もあったりします。 # が, for (Int32 i = 0; ……みたいなコードはほとんど見ません。 自分なりの物でいいので,統一したルールを用意しておくのがよいでしょう。 # 常に言語固有の名称でもよいと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

intやboolもでしたか。 非常に詳しく記述していただきありがとうございました。 知識を深めることが出来ました。 個人的なことですが、 既にstringに慣れてしまってるので、 Stringは使わずstringで統一したいと思います。

関連するQ&A

  • C# accessデータ取得 メモ型が途切れる

    お世話になっております。 accessのデータをC#で取得して、それを加工して csvに出力するプログラムを作っています。 SQLで取得して、OleDA.Fill(dataSetItem, "item"); とした後、dataSetItemの取得したデータを見ると accessでメモ型にしていた項目の データが完全に取得できなく、途中で途切れてしまいます。 以下は設定の説明です。 accessで、文字列が長く、htmlが含まれている項目をメモ型に設定。 XMLスキーマのメモ型の項目のデータタイプはSystem.Stringです。 SQL文はデータ加工せず、「SELECT * 」で取得しています。 データタイプはSystem.String以外にObjectがありましたが 同じく取得できませんでした。 ご教授お願い致します。

  • C#でコンパイルできない

    Visual C# 2008 EXPRESS EDITONでコンソールアプリケーションを作成しています。 プログラム上の以下の行をコンパイルできません。 System.Windows.Forms.Clipboard.SetText(string); エラーメッセージは以下のとおりです。 型または名前空間名 'Windows' は名前空間 'System' に存在しません。アセンブリ参照が不足しています。 なお、フォームアプリケーションの作成においては、上記のエラーは発生しませんでした。参照ライブラリを加える必要があるのでしょうか?

  • C#を勉強していて、指定したフォルダから画像を読み込んでピクチャボック

    C#を勉強していて、指定したフォルダから画像を読み込んでピクチャボックスに次々と表示するスライドショーを作っています。 それで次のように作りました。 string[] files = System.IO.Directory.GetFiles(@"c:\test\", "*.jpg");  foreach (string file in files)  {   pictureBox1.Image = Bitmap.FromFile(file);   this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; Thread.Sleep(1000);  } しかしこれではフォルダの最後の画像しか表示されません。 この場合次々と画像を表示するにはどうしたらいいか教えてください。

その他の回答 (1)

  • 回答No.1

同じです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

同じでしたか! すっきりしました>< ありがとうございます

関連するQ&A

  • C# 正規表現での文字列分割

    下記はc#正規表現での文字列分割の例です。 ------------------------------------------------- using System; using System.Text.RegularExpressions; class MyApp { static void Main() { Regex regex = new Regex("<[^>]*>"); string[] parts = regex.Split ("<b>Every</b>good<h3>boy</h3>does<b>fine</b>"); foreach(string part in parts) Console.WriteLine(part); } } ------------------------------------------------- 上記で正しく分割できるのですが、[^>]の意味がどうしても理解できません。">以外"という意味ですね?どうして必要なのでしょう? "<[\\w,/]*>"の場合OKですが、"<[*]>"の場合は区切り文字が">"になってしまいます。 どなたか説明をお願い致します。数ヶ月悩んでいます。

  • c# 暗黙/明示的型変換の許容範囲

     こんにちは。毎度皆さんにお世話になっているc#初心者です。  c#にも暗黙/明示的型変換を定義することが出来ますよね? それで、どこまでのものが暗黙の型変換として許容されるかということが疑問になり質問させていただきました。毎度のことですがライブラリ内のクラス・構造体についてです。  例えば、あんまり意味はありませんが、百分率を表す構造体 public struct Percentage {   private int _percentage; }  があり、その内部で public static implicit operator Percentage(int value) { return new Percentage(value); }  程度なら十分許される範囲だと思います(間違っていたらご指摘ください)。  ですが、例えば、「System.Drawing.Color」構造体と同じものを作ったとして、本来「FromName」メソッドで処理するのが妥当と思われる「string」から「Color」への変換を puclic static explicit operator Color(string name) { return FromName(name); }  のようにしてしまうのはまずいのでしょうか? 多分まずいですよね。だとすると、どの程度の変換がボーダーラインなのか(出来れば具体例もあれば助かります)知りたいのですが、どなたか詳しい方はいらっしゃいませんか?

  • C#でDownloadFileAsync

    最近C#のプログラミングの勉強を始めました。 ファイルをWEB上からダウンロードする方法についての質問です。 以下のコードを使って、HTMLファイルをDLすることは問題なくできました。 System.Net.WebClient wc = new System.Net.WebClient(); Uri url = new Uri("http://okwave.jp/"); string filename = "tempfile.html"; wc.DownloadFile(url, filename); しかし、以下のように非同期のメソッドにした場合、うまくファイルがDLされません。 System.Net.WebClient wc = new System.Net.WebClient(); Uri url = new Uri("http://okwave.jp/"); string filename = "tempfile.html"; wc.DownloadFileAsync(url, filename); なおDLされないというのは、コンパイルも通るし例外も出ないし tempfile.htmlというファイル自体は作成されるのですが、 サイズが0KBの空っぽのものになってしまうという意味です。 後半のソースも、どこかのサイトからほぼコピペしてきたものなのですが、 何か重大な見逃しをしているのか、設定が悪いのか、 いろいろネットをあたってもそれらしい解決策は得られませんでした。 .Netにあまりなじみがないのでくだらないミスをしているのかもしれませんが、 行き詰ってしまいましたので皆様のお知恵をお借りできればと思います。 よろしくお願いします。 環境 Win8 64bit Visual Studio Express 2012 for Win Desktop ↑特に設定いじってなし

  • 【C#】コンボボックスにおけるSelectionStart

    C#でツールを作っています。 テキストボックス内に書かれている文字列中にカーソルを置いて そのカーソル部分に任意の文字を挿入する処理に、TextBox.SelectionStart を使っています。 text_box.Text = text_box.Text.Insert(text_box.SelectionStart, string_word); text_box …テキストボックス名 string_word …挿入する文字 これを同じようにコンボボックスの中でもやりたいのですが ビルドエラーにはならないものの、上手く動作しません。 デバッグで見てみると、SelectionStart=0 となっており、 常にコンボボックス内の先頭に挿入されてしまいます。 コンボボックスでは無理なのでしょうか? MSDNライブラリでは、テキストボックスと変わらない説明がされているのですが… http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.combobox.selectionstart(VS.80).aspx

  • C# 猫でもわかる・・・ のプログラムで質問です。

    猫でもわかる・・・のページでC#の勉強させてもらってるのですが、 解らないところが出たので教えてください。 using System; class dowhle01 { public static void Main() { Console.Write("数字を入力してください(1-9) --- "); string strInput = Console.ReadLine(); if (strInput.Length >= 2) return; if (!char.IsDigit(strInput[0]) || strInput[0] == '0') return; int n = strInput[0] - '0'; string mystr = ""; int i = 1, sum = 0; do { sum += i; mystr += string.Format("{0} + ", i); i++; } while (i <= n); char[] trimchar = new char[] { '+', ' ' }; mystr = mystr.TrimEnd(trimchar); mystr += " = "; mystr += sum; Console.WriteLine(mystr); } } このプログラムの中の int n = strInput[0] - '0'; この部分なんですけど、 これはint型に直してるってことでしょうか? でも、普通int型にするなら、 int n = int.Parse(strInput);ですよね? こういうやり方もあるって意味なんですかね? それとも、何か特別な意味があるのでしょうか? 教えて下さい。よろしくお願いします。

  • C#でHTTPリクエスト時にフリーズします。

    C#でGUIを作成して、WEBサーバー上のPHPで作った簡易APIにPOSTしてサーバー側に データを溜め込みそれをC#のGUI側で随時表示という、いわばGUIのチャットをつくっています。まず、GUIをつくりGUI上のフォームからテキストを入力してサーバー側のPHPへPOSTしログとしてためることはできましたが、どうもGUI側で連続ポスト・・・大体い1&#65374;2秒に一度ポストすると、三度目のポストでGUIがフリーズしています。ただしアプリが落ちるわけでなく、POST完了にずいぶん時間がかかっているらしく一分ぐらいするとPOSTが完了してフリーズも直ります。このパターンが続きます。 つまり、3の倍数の回数目のPOSTのみフリーズするのです。なんとか、これを解消して 問題なく連続POSTができるようにしたいのです。お力添え願います。ソースは以下になります。 using System; using System.IO; using System.Windows.Forms; using System.Drawing; using System.Web; using System.Net; using System.Text; public class MainClass{ public static void Main(string [] args){ NewForm formObj = new NewForm(500,500); formObj.SetTitle("チャットアプリサンプル"); Application.EnableVisualStyles(); Application.Run(formObj); } } public class NewForm : Form{ //Formに付加するコントロールオブジェクト public Label labelObj =new Label(); public Button buttonObj =new Button(); public TextBox boxObj =new TextBox(); public TextBox responseBox =new TextBox(); public UserRequest user; public NewForm( int localWidth,int localHeight){ this.Width = localWidth; this.Height = localHeight; this.boxObj.Width = localWidth/2; this.boxObj.Height = localHeight/2; this.boxObj.Multiline =true; this.boxObj.Location = new Point(50,200); this.responseBox.Width =300; this.responseBox.Height =150; this.responseBox.Multiline =true; this.Controls.Add(this.responseBox); this.buttonObj.Text ="サーバーへ送信"; this.buttonObj.Width =150; this.buttonObj.Height =50; this.buttonObj.Location =new Point(350,10); this.buttonObj.Click += new EventHandler(this.ClickMethod); this.Controls.Add(this.boxObj); this.Controls.Add(this.buttonObj); this.user = new UserRequest("http://localhost/csharp.php"); } public void SetTitle(String titleText){ this.Text = titleText; } public void ClickMethod(Object sender , EventArgs e){ this.user.SetUrlPath("http://localhost/csharp.php"); this.user.SetPostData(this.boxObj.Text,"POST"); this.user.SendData(); this.boxObj.Text = ""; this.user.DeleteStream(); } } //通信用クラスの定義 public class UserRequest{ //HTTPリクエストオブジェクト private HttpWebRequest http; //通信先のURL private string path = ""; //通信先URLへとPOSTするpostdata private string postData =""; //通信のメソッドタイプ private string method ="POST"; //contenttypeの指定 private string ct = "application/x-www-form-urlencoded"; //送信データの文字列のurlエンコードを行う。 private Encoding encode = Encoding.GetEncoding("UTF-8"); //postデータをバイト型配列に private byte [] postDataBytes; //実際にpostデータを送受信するためのStreamを用意しておく private Stream reqStream; private Stream resStream; /* この辺は、迷っています。独自クラスのUserRequestというクラスのコンストラクタで HttpWebRequestのオブジェクトをつくってやるか それとも、オブジェクト作成のためだけのメソッドを定義してやるか・・・。 public UserRequest(string httpPath){ //this.path = httpPath; //httpオブジェクトの作成 //this.http =(HttpWebRequest) WebRequest .Create(this.path); } public void SetUrlPath (string setUrlpathData){ this.path = setUrlpathData; this.http =(HttpWebRequest) WebRequest .Create(this.path); } */ //postDataのセット public void SetPostData (string postDataParam,string methodType){ //ポストデータをUrlエンコードしアスキー文字にまとめる。 this.postData = "messageData=" + HttpUtility.UrlEncode(postDataParam,this.encode); //postDataをバイト配列型に格納する。 this.postDataBytes = Encoding.ASCII.GetBytes(this.postData); this.method = methodType; //HTTPオブジェクトにそれぞれの値を設定する。 this.http.ContentType = this.ct; this.http.Method = this.method; this.http.ContentLength = this.postDataBytes.Length; } public void SendData (){ try{ using(this.reqStream = http.GetRequestStream()){ this.reqStream.Write(this.postDataBytes,0,this.postDataBytes.Length); this.reqStream.Close(); } }catch(Exception e){ MessageBox.Show(e.ToString()); } } public void DeleteStream(){ this.http = null; this.reqStream = null; } } PHPとかjsは仕事でつかっているのですが C#見たく、完全なOOPを扱うのは初めてなので うまいユーザー定義のクラスではないかもしれません。

  • OCNとGmailの送信サーバー???

    従来わたしはOCNの有料メールを使用しています そのOCNメールサーバーを使いC#の送信プログラムを作って利用しています 概略は以下の通りです // SMTPサーバーを指定する SmtpClient client = new SmtpClient("smtp.vccube.ocn.ne.jp"); ・・・(1) //送信元、あて先、件名、本文を設定する string fromAddress = "MyOCNaddress@cube.ocn.ne.jp"; ・・・・・・(2) string toAddress = "MyAddress@MyCompany.com"; string subject = "題名"; string body = "内容"; //送信する client.Send(fromAddress, toAddress, subject, body); 今回Gmailの無料メールアドレスを取得し上記のプログラムを修正致しました (1)をGmailの送信サーバー SmtpClient client = new SmtpClient("smtp.gmail.com"); (2)を私が取得したGmailのメールアドレス string fromAddress = "MyGmailAddress@gmail.com"; として実行すると『送信できませんでした』とのダイアログが表示されます GmailはOCNの送信サーバーの代わりになってくれないのでしょうか? なおC#が表示したエラーは以下の通りです System.Net.Mail.SmtpException' の初回例外が System.dll で発生しました。 プログラム '[4596] net397.vshost.exe: マネージ (v2.0.50727)' はコード 0 (0x0) で終了しました。

  • [C#]Win7で作ったツールがXPで動かない

    C#でツールを作り始めて間もないので、 初心者な質問かもしれませんが よろしくお願いします。 現在、ツールをWindows7で、visual C# 2010 expressで作成しています。 特にプロパティ的なのはいじらず、Windowsフォームアプリケーションで シコシコとツールを作っていました。 で、F6をクリックしてツール化したファイルを WindowsXPで動かそうと思っても動かない・・・ NET Flamework4は入れました。 違うパソコンのWindows7だとちゃんと動きます。 アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。「続行」をクリックすると、アプリケーションはエラーを無視し、続行しようとします。「終了」をクリックすると、アプリケーションは直ちに終了します。 と表示されて、エラーの詳細は、 以下のように出て、全然意味がわからないです。 解る方いましたが、ご教授お願いします。 =============== System.ArgumentOutOfRangeException: 長さを 0 未満にすることはできません。 パラメーター名: length 場所 System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) 場所 yahooauction.Form1.button6_Click(Object sender, EventArgs e) 場所 System.Windows.Forms.Control.OnClick(EventArgs e) 場所 System.Windows.Forms.Button.OnClick(EventArgs e) 場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 場所 System.Windows.Forms.Control.WndProc(Message& m) 場所 System.Windows.Forms.ButtonBase.WndProc(Message& m) 場所 System.Windows.Forms.Button.WndProc(Message& m) 場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** 読み込まれたアセンブリ ************** mscorlib アセンブリ バージョン: 4.0.0.0 Win32 バージョン: 4.0.30319.1 (RTMRel.030319-0100) コードベース: file:///C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll ・・・・・(省略)・・・・・ =========================================

  • VisualStudioでC#が実行できない

    VisualStudio Express2012でC#のコンソールアプリケーションを作成してみたのですが 下記のような簡単なコードでも実行に失敗します。 VIsualStudioのコンソールには以下のようなエラーが表示されるのですが 何か原因がわかる方いらっしゃいますでしょうか。 【コード】 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { Console.WriteLine("abc"); } } } 【エラー内容】 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'c:\users\mishina\documents\visual studio 2012\Projects\ConsoleApplication3\ConsoleApplication3\bin\Debug\ConsoleApplication3.vshost.exe' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll' が読み込まれました 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll' が読み込まれました スレッド 'vshost.NotifyLoad' (0x1350) はコード 0 (0x0) で終了しました。 スレッド 'vshost.LoadReference' (0x58c) はコード 0 (0x0) で終了しました。 'ConsoleApplication3.vshost.exe' (マネージ (v4.0.30319)): 'c:\users\mishina\documents\visual studio 2012\Projects\ConsoleApplication3\ConsoleApplication3\bin\Debug\ConsoleApplication3.exe が読み込まれました。シンボルが読み込まれました。 スレッド 'vshost.RunParkingWindow' (0x2698) はコード 0 (0x0) で終了しました。 スレッド '<名前がありません>' (0x26a0) はコード 0 (0x0) で終了しました。 プログラム '[7700] ConsoleApplication3.vshost.exe: マネージ (v4.0.30319)' はコード 0 (0x0) で終了しました。

  • C#のビルド方法について質問です。

    IDEをつかわず、コマンドプロンプト上でC#のソースをビルドする時の方法について質問です。 まず以下のようなコードがあるとします。 まずC:\の直下に以下のソースを作成しました。 =================================================== using System; using System.IO; using System.Windows.Forms; namespace Add.TestClass{ public class LibraryClass{ public LibraryClass(){ MessageBox.Show("クラスライブラリコンストラクタの実行"); } } } =================================================== 上記クラスをdllファイルとしてビルドします。 csc /t:library /out:Add.TestClass library.class  と上記のようにビルドしました。するとAdd.TestClass.dllというファイルが確かにできあがりました。 次にこれを実際に実行するためのファイルをつくりました。 それが以下になります。 同じくC:\直下に以下のようなソースを作成します。 =================================================== using System; using System.IO; using System.Windows.Forms; using Add.TestClass; public class MainClass{ public static void Main(String [] args){ LibraryClass obj = new LibraryClass(); } } =================================================== このファイルをビルドします。 csc /r:Add.TestClass.dll main.cs としてビルドし、その後 mainというファイルを実行しました。 するとキチンとMessageBoxで MessageBox.Show("クラスライブラリコンストラクタの実行");が実行されました。 ここまでは問題ないのですが、この場合 main.exeファイルとAdd.TestClass.dllというファイルが 同じ階層に存在するような状態になっているのですが、これを main.exeファイルのある階層にdllというディレクトリを作成し そのdllの中にAdd.TestClass.dllというファイルをおいた階層状況でmain.exeファイルを実行したいのです。 そのためにまず、 csc /r:”C:\dll\Add.TestClass.dll" main.cs 上記のようなビルドオプションでビルドしてみたのですが、ビルドはとおりましたが -------------------------------------------------------------------------------------------------------------------- ハンドルされていない例外: System.IO.FileNotFoundException: ファイルまたはアセン ブリ 'Add.TestClass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'、ま たはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりませ ん。 場所 MainClass.Main(String[] args) -------------------------------------------------------------------------------------------------------------------- というエラーがでました。 このdllファイルを特定の任意のディレクトリ内において、main.exeを実行してうまく動くようにするためには どのようなビルドオプションをつけたらいいのでしょうか? よろしくご教授お願いいたしま。