C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■10724  Re[2]: VS2008 RTM おめでとう
□投稿者/ カンタービレ -(2007/11/24(Sat) 16:14:28)
    ようやくインストール出来ました☆

    VB.NET2008で試しにインラインXML書いてみたデス。
    私は発想が貧弱なせいかも知れませんが、コードが見難くなって使う気がシマセン。。
    インラインXMLは、こんな使い方するといい!っていうのがあれば教えて欲しいデス。

    少し横道になりマスが、PopFlyも入れてみました。ピヨピヨちゃん。
    プロジェクト共有の可能性があるような、ないような・・・。
記事No.10579 のレス /過去ログ24より / 関連記事表示
削除チェック/

■32575  Re[2]: CAsyncSocket での非同期受信について
□投稿者/ macochin -(2009/02/09(Mon) 23:14:06)
    オショウ様

    早速のご返信ありがとうございます。

    > 初回の1回だけ受信イベントが発生して2回目以降発生しない
    > のでしょうか?
    >
    > もしそうであれば・・・
    > 再度、OnRecieveの非同期受信イベントの登録をし直さないと
    > いけないはずです。

    いえ、毎回イベントが発生するので、
    登録のし直しということは必要ないかなと思います。

    ただ、何かが原因となって突然イベントが発生しなくなってしまうんです。
    コードをみてもイベントの解除や ShutDown メソッドなどもコールしておらず、
    何が原因なのか、何が起こっているのか不明な状態です。
記事No.32571 のレス /過去ログ57より / 関連記事表示
削除チェック/

■32946  Re[7]: Java 2 CSharp Translator
□投稿者/ 散々 -(2009/02/18(Wed) 01:34:20)
    かずきさん回答ありがとうございます。

    やったことは、
    http://sourceforge.net/projects/j2cstranslator/
    から、com.ilog.rules.Java2CSharpTranslator_1.1.0.13012009_1.jarをダウンロードして
    それを、Eclipseをインストールしたフォルダ内の plugins にいれたということのみです。

    EclipseはEclipse Ganymede Pleiades All in One 3.4.1.20081118を使っています。

    このツールを使いたい理由は、
    Java から C# にソースコードを変換したいためです。
    Microsoft の Java Language Conversion Assistant は使い物になりませんでした。

記事No.32919 のレス /過去ログ58より / 関連記事表示
削除チェック/

■83119  Re[1]: byrefと参照の違いについて
□投稿者/ Jitta -(2017/03/07(Tue) 09:30:36)
    No83096 (はーと さん) に返信
    > byrefと参照がどう違うのか教えてください

    ByRef 主にVisualBasic で使われる、関数の引数を参照渡しするときのキーワード。
    参照 サ変名詞 他のものを照らし合わせて参考にすること。
記事No.83096 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83118  Re[1]: int構造体やstringクラス型変数に値を格納できる理由
□投稿者/ 774RR -(2017/03/07(Tue) 09:26:51)
    A1-1. C# の int は「構造体」ではなくて単なる値型。だから i=144; はできて当たり前。
    class 自体は参照型だけど、クラスのメンバは値型にできるので以下同文。

    A1-2. ここの s は参照型だからどこかにある実体を指しているだけの話。
    A2. も A1-2 と同様。

    A3. reference source から System.String のソース見てみるとか
    https://referencesource.microsoft.com/
    単に各演算が、演算結果を new String して返すだけの話だと・・・

記事No.83115 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83117  Re[1]: int構造体やstringクラス型変数に値を格納できる理由
□投稿者/ Hongliang -(2017/03/07(Tue) 09:26:04)
    > 1.int a = 130; や string s = "かきくけこ";
    > で構造体の型やクラスの型に直接値を格納できるのはなぜか?
    
    130はint型の値なので、当然代入できます。
    同様に"かきくけこ"はstring型の値なので、当然代入できます。
    130がint型として、"かきくけこ"がstring型として扱われるのは、
    コンパイラがむき出しの数字列や""で区切られた部分をそのように扱うからとしか言い様がないですね。
    
    > 2.string str_s = "かきくけこ"が
    > string str_s = new string(new char[] {'か','き','く','け','こ'});
    > と同様のコードになる理由
    
    後者は、単にstringにそういうコンストラクタが用意されているからです。
    なお、リテラル文字列はインターンプールというところに格納され、
    同じ文字列であれば同じインスタンスを共有するので、
    厳密にはa = "..."とa = new string(...)は異なります。
    Object.ReferenceEquals("a", "a") // true
    Object.ReferenceEquals("a", new string(new[]{'a'})) // false
    Object.ReferenceEquals(new string(new[]{'a'}), new string(new[]{'a'})) // false
    
    > 3・2のように同様のコードで値を格納出来るクラスは自作できるのか?
    > 自作できるのであれば、どのようにして作るのか?
    
    暗黙の型変換を定義すれば、一つの数値などからインスタンスに代入することはできます。
    struct Hoge {
        private int m_Value;
        public int Value { get { return this.m_Value; } }
        public Hoge(int value) { this.m_Value = value; }
        public static implicit operator Hoge(int value) {
            return new Hoge(value);
        }
    }
    Hoge a = 4;
記事No.83115 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83120  Re[1]: int構造体やstringクラス型変数に値を格納できる理由
□投稿者/ 魔界の仮面弁士 -(2017/03/07(Tue) 09:33:29)
    No83115 (rotto さん) に返信
    > intは構造体の型の変数にそのまま値が格納できます。

    これは .NET 側の仕様と言うよりも、整数型の数値リテラルとして
    言語仕様レベルで定義されているためだと思います。

    整数値の代入は、IL レベルで専用命令が用意されているので、
    整数リテラルが用意されていた方が都合が良かったのでしょう。


    たとえば deciemal 構造体の場合などは、
      decimal a = 1.234M;
      decimal b = 1.23400m;

      Console.WriteLine(a); // 1.234
      Console.WriteLine(b); // 1.23400
      Console.WriteLine(a == b); // True
      Console.WriteLine(a.ToString() == b.ToString()); // False
    のように、M/m サフィックスによるリテラル表記が用意されてはいます。

    といっても、Visual Studio のデザイナコードにおいては、コードジェネレーターが
      a = new decimal(new int[] {1234, 0, 0, 196608});
    のようにコンストラクタを用いた記述を生成するようになっていますけれどね。


    あるいは DateTiem 構造体を例に挙げてみると:
    Visual Basic には「日付型リテラル」が存在しており、
     Dim dt1 As DateTime = #3/7/2017 8:45:00 AM#
    のような記述ができますが、C# にはそのようなリテラルが存在しないため
    DateTime 構造体のコンストラクタや Parse/ParseExact メソッドなどを用いて
     DateTime dt2 = new DateTime(2017, 3, 7, 8, 45, 0);
     DateTime dt3 = DateTime.Parse("2017-03-07 08:45:00");
    と書かねばなりません。




    > 例えば、下記のように自作の構造体を作成したとします。

    オブジェクト初期化子を用いて、
      ItumonoKozoutai kouzoutai = new ItumonoKozoutai() { I = 111, k = 222 };
    のように指定することはできます(C# 3.0/VS2008 以上)。

    それ以前のバージョンだと、ItumonoKozoutai 型を返す静的メソッドか、
    引数付きコンストラクタを、ItumonoKozoutai 構造体に用意することで、
      ItumonoKozoutai kouzoutai1 = new ItumonoKozoutai(333, 444);
      ItumonoKozoutai kouzoutai2 = ItumonoKozoutai.Create(555, 666);
    などの記述が可能になります。


    > フィールドに値を格納するか、プロパティを介して
    > フィールドに値を格納します。
    たとえば、ItumonoKozoutai 構造体にて

     public static implicit operator ItumonoKozoutai(ulong qword)
     {
       return new ItumonoKozoutai() { I = (int)(qword >> 32), k = (int)(qword & uint.MaxValue) };
     }

    のような型変換演算子をオーバーロードさせておけば、
     // 下記は、X = 0xFEDCBA98, k = 0x76543210 の代入として扱われる
     ItumonoKozoutai kouzoutai = 0xfedcba9876543210ul;
    のような書き方ができます。String 型からの変換を受け付けるようにすれば、
     ItumonoKozoutai kouzoutai = "1234,5678";
    とも書けるようになるでしょう。


    > str_s = "かきくけこ"; で値を入れた場合
    > 強制的にnewをされるクラスというのは

    オブジェクト初期化子、静的メソッド、引数付きコンストラクタ、あるいは
    explicit / implicit などといった演算子のオーバーロードで対応することはできます。

    ただ、リテラル表記そのものについては言語仕様レベルの話になるので、
    自分では自由に追加できません。なお、C# 6.0 (VS2015) においては、
     System.IFormattable formatable = $"({x}, {y})";
    のようなリテラルが追加されていますね。
記事No.83115 のレス /過去ログ142より / 関連記事表示
削除チェック/

■88846  Re[2]: VB.NETでの全ハンドル列挙について
□投稿者/ ??? -(2018/10/04(Thu) 14:44:18)
    No88844 (魔界の仮面弁士 さん) に返信
    > ■No88842 (ぽん さん) に返信
    >>上記URLに、VB.NETでTreeViewに実行中のすべてのコントロールを表示するコードが載せられているのですが
    > VB6 互換 Collection を使っていたり、IntPtr を使わずに
    > x86 かつ Option Strict Off 前提のコードになっていたり、
    > Wide API ではなく ANSI API になっていて、しかも
    > 文字列をバイナリで処理していたりするなど、
    > 突っ込みどころが満載なので、ゴッソリ書き直したい…。
    >
    >
    >>ハンドルの取得ができずに困っております。
    > 取得はされてますよ。colChilds(j)(0) を表示していないだけ。
    >
    > VB.NET 版のコードは、
    >  Dim strClass As String は colChilds(j)(1) から取得
    >  Dim strTitle As String は colChilds(j)(2) から取得
    > となっていて、それを
    >  New TreeNode(strClass & " - " & strTitle)
    > で表示していますよね。
    >
    >
    > なので、
    >  Dim strHandle As String = CInt(colChilds(j)(0)).ToString("X8")
    > などを追加して、
    >  New TreeNode(strHandle & " - " & strClass & " - " & strTitle)
    > にでも変えてやれば良いんじゃないでしょうか。VB6 版のように。

    素晴らしいご回答ありがとうございます!
    まだまだ勉強不足のため、分からない部分が多々ありますが、
    戴いた情報を参考にコーディングしてみようと思います。
    結果はまたご報告いたします。
記事No.88842 のレス /過去ログ153より / 関連記事表示
削除チェック/

■88850  Re[3]: VB.NETでの全ハンドル列挙について
□投稿者/ ??? -(2018/10/04(Thu) 16:04:16)
    No88846 (??? さん) に返信
    > ■No88844 (魔界の仮面弁士 さん) に返信
    >>■No88842 (ぽん さん) に返信
    > >>上記URLに、VB.NETでTreeViewに実行中のすべてのコントロールを表示するコードが載せられているのですが
    >>VB6 互換 Collection を使っていたり、IntPtr を使わずに
    >>x86 かつ Option Strict Off 前提のコードになっていたり、
    >>Wide API ではなく ANSI API になっていて、しかも
    >>文字列をバイナリで処理していたりするなど、
    >>突っ込みどころが満載なので、ゴッソリ書き直したい…。
    >>
    >>
    > >>ハンドルの取得ができずに困っております。
    >>取得はされてますよ。colChilds(j)(0) を表示していないだけ。
    >>
    >>VB.NET 版のコードは、
    >> Dim strClass As String は colChilds(j)(1) から取得
    >> Dim strTitle As String は colChilds(j)(2) から取得
    >>となっていて、それを
    >> New TreeNode(strClass & " - " & strTitle)
    >>で表示していますよね。
    >>
    >>
    >>なので、
    >> Dim strHandle As String = CInt(colChilds(j)(0)).ToString("X8")
    >>などを追加して、
    >> New TreeNode(strHandle & " - " & strClass & " - " & strTitle)
    >>にでも変えてやれば良いんじゃないでしょうか。VB6 版のように。
    >
    > 素晴らしいご回答ありがとうございます!
    > まだまだ勉強不足のため、分からない部分が多々ありますが、
    > 戴いた情報を参考にコーディングしてみようと思います。
    > 結果はまたご報告いたします。


    おかげさまで無事に表示させることが出来ました!
    .ToString("X8")でわざわざ16進数へ置換する処理まで入れていただき、大変感謝いたします。
    またご質問することがあると思いますので、その際は何卒、宜しくお願い致します!

    以下、実現できたコードを載せておきます。
    「現在実行中のハンドルのみを列挙」

    bytClass = System.Text.Encoding.GetEncoding(
    "SHIFT-JIS").GetBytes(colChilds.Item(j)(0))
    If bytClass.Length < 30 Then
    Dim p As Integer = bytClass.Length
    ReDim Preserve bytClass(bytClass.Length + bytSpace.Length - 1)
    Array.Copy(bytSpace, 0, bytClass, p, bytSpace.Length)
    ReDim Preserve bytClass(30 - 1)
    End If
    Dim strHandle As String = CInt(colChilds(j)(0)).ToString("X8")

    If j = 1 Then
    treeNodeTop = New TreeNode(strHandle)
    TreeView1.Nodes.Add(treeNodeTop)
    Else
    Dim treeNodeSub As TreeNode =
    New TreeNode(strHandle)
    treeNodeTop.Nodes.Add(treeNodeSub)
    End If
記事No.88842 のレス /過去ログ153より / 関連記事表示
削除チェック/

■88851  Re[4]: VB.NETでの全ハンドル列挙について
□投稿者/ ??? -(2018/10/04(Thu) 16:16:06)
    No88850 (??? さん) に返信
    > ■No88846 (??? さん) に返信
    >>■No88844 (魔界の仮面弁士 さん) に返信
    > >>■No88842 (ぽん さん) に返信
    >>>>上記URLに、VB.NETでTreeViewに実行中のすべてのコントロールを表示するコードが載せられているのですが
    > >>VB6 互換 Collection を使っていたり、IntPtr を使わずに
    > >>x86 かつ Option Strict Off 前提のコードになっていたり、
    > >>Wide API ではなく ANSI API になっていて、しかも
    > >>文字列をバイナリで処理していたりするなど、
    > >>突っ込みどころが満載なので、ゴッソリ書き直したい…。
    > >>
    > >>
    >>>>ハンドルの取得ができずに困っております。
    > >>取得はされてますよ。colChilds(j)(0) を表示していないだけ。
    > >>
    > >>VB.NET 版のコードは、
    > >> Dim strClass As String は colChilds(j)(1) から取得
    > >> Dim strTitle As String は colChilds(j)(2) から取得
    > >>となっていて、それを
    > >> New TreeNode(strClass & " - " & strTitle)
    > >>で表示していますよね。
    > >>
    > >>
    > >>なので、
    > >> Dim strHandle As String = CInt(colChilds(j)(0)).ToString("X8")
    > >>などを追加して、
    > >> New TreeNode(strHandle & " - " & strClass & " - " & strTitle)
    > >>にでも変えてやれば良いんじゃないでしょうか。VB6 版のように。
    >>
    >>素晴らしいご回答ありがとうございます!
    >>まだまだ勉強不足のため、分からない部分が多々ありますが、
    >>戴いた情報を参考にコーディングしてみようと思います。
    >>結果はまたご報告いたします。
    >
    >
    > おかげさまで無事に表示させることが出来ました!
    > .ToString("X8")でわざわざ16進数へ置換する処理まで入れていただき、大変感謝いたします。
    > またご質問することがあると思いますので、その際は何卒、宜しくお願い致します!
    >
    > 以下、実現できたコードを載せておきます。
    > 「現在実行中のハンドルのみを列挙」
    >
    > bytClass = System.Text.Encoding.GetEncoding(
    > "SHIFT-JIS").GetBytes(colChilds.Item(j)(0))
    > If bytClass.Length < 30 Then
    > Dim p As Integer = bytClass.Length
    > ReDim Preserve bytClass(bytClass.Length + bytSpace.Length - 1)
    > Array.Copy(bytSpace, 0, bytClass, p, bytSpace.Length)
    > ReDim Preserve bytClass(30 - 1)
    > End If
    > Dim strHandle As String = CInt(colChilds(j)(0)).ToString("X8")
    >
    > If j = 1 Then
    > treeNodeTop = New TreeNode(strHandle)
    > TreeView1.Nodes.Add(treeNodeTop)
    > Else
    > Dim treeNodeSub As TreeNode =
    > New TreeNode(strHandle)
    > treeNodeTop.Nodes.Add(treeNodeSub)
    > End If
    >

    解決済みとさせていただきます!
    ありがとうございました!
記事No.88842 のレス / END /過去ログ153より / 関連記事表示
削除チェック/

■95074  Re[2]: エンコーディングそのままでテキストファイル変換
□投稿者/ furu -(2020/06/22(Mon) 10:20:46)
    No95064 (魔界の仮面弁士 さん) に返信
    > ■No95063 (furu さん) に返信
    > 読み込み時の BOM の有無判断は自動で行われます。
    自動で行っているならBOM有無を知っている筈なので
    ついでにStreamReader.CurrentEncodingを設定する時に
    encoderShouldEmitUTF8Identifierもtrueに
    してくれるとありがたいのだが。

    それしちゃうとUTF8の判定にEncoding.UTF8と比較が
    使えなくなり不便なのかな。

    結局、StreamReader.CurrentEncodingを見て
    UTF8だとわかったら、
    BinaryReaderとかで調べる必要あるということですね
記事No.95063 のレス /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -