- ベストアンサー
C# Object型の受け渡し
C++のプログラマです。 以下のコードを通すとdataが配列として配置されます。 Object data; excute(out data); excuteメソッドの引数定義はVARIANT * です。 ここで質問です。 1)C++の概念ではこのような使い方は考えられないのですが、 C#ではあたりまえでしょうか? 2)この場合、配列数と配列の要素を取出す方法を教えてくれませんか? 以上、宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
関連するQ&A
- C++の const int* dataを置き換える C#
C#2005で、C++の const int* dataを置き換えるにはどうしたらよいでしょうか? メソッドの引数でdataを渡しているのですが、dataは intの配列です。 メソッド内では書きかえられたくないのでC++の時にconstを付けました。 C#ではどのように記述するのが正しいでしょうか? C++からC#に置き換えていますが、参考になるサイトがありましたら教えてください。
- ベストアンサー
- C・C++・C#
- C言語のコールバック
Java/C#/PHPといった言語はすでに使えるのですが、現在C言語およびWin32 APIを勉強中です。 C言語の関数にはJavaなどのインスタンスメソッドのthisにあたる引数が渡されませんが、Win32 APIのウィンドウプロシージャに代表されるコールバック関数において不都合があります。Javaの場合は、 interface Callback{ void onCallback(); } といったインターフェイスが定義されているものとして、 hoge(new Callback(){ int data = 10; public void onCallback(){ System.out.println(data); } }); のようなコードで引数以外のデータも参照できますが、C言語ではこのように引数で渡せないデータを参照するにはどうしたらよいでしょうか。グローバル変数として参照するのは、Javaのstaticなフィールドと同様に拡張性を損なうので避けたいと思います。
- ベストアンサー
- C・C++・C#
- C#のキャストについて(object→byte)
いつもお世話になっております。C#初心者です。 「メソッドの引数として渡された値をリスト型の配列に格納する」という課題に取り組んでいますが、 変数のキャストで実行時にエラーが発生し、頭を悩ませています。 作成したコードは以下のようになっています。 public class TestClass { private List<byte> hogeList = new List<byte>(); public void TestMethod( object hoge ) { hogeList.Add( (byte)hoge ); ← (*) } } 上記のメソッドをMain関数から TestClass test = new TestClass(); test.TestMethod(5); として実行すると、「hogeList」に「5」が格納される、といった動作にしたいと考えています。 しかしながら、ビルドは通るのですが、実行すると(*)の位置で止まり、 「指定されたキャストは有効ではありません。」 というメッセージが表示されます。 そこで質問なのですが、object型からbyte型にキャストする場合にはどのような記述の仕方がありますでしょうか? ご教授よろしくお願いいたします。
- 締切済み
- その他(プログラミング・開発)
- 【Objective-C】文法 メソッドの定義について
Objective-Cの勉強を始めたばかりの者です。 メソッドの定義について、混乱してきたので教えてください。 例えば、二つの数値を引数に与えるメソッドsetDataを作るとします。 このメソッドを以下のような方法で呼び出します。 id data; data = [[Data alloc] init]; [data setData:3:4]; この場合のメソッドの定義は以下の様になりますよね。 - (void)setData:(int)argx:(int)argy; 次にラベルを使った引数についてですが、 - (void)setData:(int)argx y(int)argy; と定義したら、呼び出しは、 [data setData:3 y:4]; となりますよね。 この記述に違和感を感じるんです。 ここまでは前ふりでして、以下が質問になるのですが、 メソッド名とは別に二つの引数用のラベルを設ける事ってできないのですか? つまりは、例えば、 [data setData x:3 y:4]; のような感じの記述です。 それとも、「ラベルを付けられるのは二つ目の引数から」ってのが仕様なんですか? 以上、ご指導のほど、宜しくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- ArrayクラスとtoStringについて
問題集で次のプログラムを見掛ました。 public class Main{ public static void main(String args[]){ int[] array = new int[0]; System.out.println(array); } } これを実行するとprintlnメソッドで toStringメソッドが呼び出されますが、 ArrayクラスはObjectクラスを継承しているため、 toStringメソッドもObjectクラスから継承されているので、 結果として、配列の要素数が0であっても、 エラー等が発生せずハッシュコードが表示される、ということです。 ObjectクラスのtoStringメソッドが ハッシュコードを返すものであるのは理解できます。 でも、なぜ要素数が1以上で何かしらの要素が存在する場合は、 ハッシュコードが返らないのでしょうか? 詳しい方、解説をお願いします。
- 締切済み
- Java
- c# 要素と値
こんにちは、c#初心者です。 細かいことなんですが、気にしだしたら止まらなくなって、遂に質問です。 配列などで、そのインデックスの位置に含まれているオブジェクトは”値”と呼ばれているところを見かけるのですが、List<T>などのコレクションでは”要素”と呼ばれているのを見かけます。 例えば、Array.IndexOfメソッドでは、XMLに「値を検索します」と書かれている上に、「T value」と値であることが明記してあります。 一方、List<T>のIndexOfメソッドでは、”要素”と書かれていて、「T item」となっています。 「配列の中身は値(value)、コレクションの中身は要素(item)と区別しているのか」と納得しかけていた矢先、Array.Exists 「指定された配列に、……”要素”が……」と配列でも要素という単語が使用されているじゃないですか! もう訳が分かりません。確かに、値と要素なら大して意味の違いはないので読み手には問題ないですが、書き手にとってはどう使い分ければよいのかちんぷんかんぷんです。 どなたか使い分けの分かる人がいらっしゃいましたら教えていただけませんか?
- ベストアンサー
- C・C++・C#
- 配列とその要素数をメンバにもつ構造体
C言語では,配列を引数とするときに,合わせて要素数を渡さなければいけないといわれます. そこで,配列とその要素数をメンバにもつ構造体を定義して,これを要素数つき配列のように扱えば,引数として渡す場合には,この構造体を渡すだけでよいと思うのですが,このような用法は一般的に用いられているでしょうか. 単純なアイデアだと思うんですが,あまり紹介されているのを見たことがありません. もしあまり用られない用法であれば,その理由を教えてください. 現在,プログラムを書いているのですが,引数の多さに閉口しており,上の考えで,引数を減らしたいと考えています. よろしくお願いいたします.
- ベストアンサー
- C・C++・C#
- JS Object要素に読み込んだデータを配列に
JavaScript Object要素に読み込んだデータを配列変数に格納したい [html] <object data="sample.txt" type="text/plain" width="300" height="100"></object> [sample.txtの内容] United States, アメリカ China, 中国 Germany, ドイツ Japan, 日本 [JavaScript] // 配列に読み込まれたデータ const data = [ ["United States", "アメリカ"], ["China", "中国"], ["Germany", "ドイツ"], ["Japan", "日本"] ]; [仕様] ・ローカル環境であること ・jQueryなどのプラグインは不使用 ・ファイルリーダーは使わない ・JavaScriptのコードを用いて実現させること 以上から、 Object要素に読み込んだデータを配列変数に格納できますか?
- 受付中
- JavaScript
補足
COM内部からの細かなご説明有難うございます。 キャストで対応できました。 有難うございます。 >「このような」というのは、一体どの部分を指しているのでしょう。 処理が終わった後に戻ってくる引数が1つの変数から 配列に代わる事を示していました。