ほとんどのコーディング標準では、グローバル変数は極力使用しないようにしてくださいと説明されています。 グローバル変数が推奨されない主な理由には次のようなものがあります。 どこからでも値を変更できてしまう 値が変更されたことを検知できない 値を変更する複数の処理を同時に実行できない それぞれについてリファクタリング案を考えてみます。 1. どこからでも値を変更できてしまう まず、読み取り専用でよいのではないですか?もしそうであれば、読み取り専用にしてください。値が変更される心配をしなくて済みます。.NET Framework ではフィールドに対して readonly を指定する方法と、get アクセサのみを定義した読み取り専用プロパティにする方法があります。 VB.NET '読み書き可能なフィールド(いわゆるグローバル変数) Public Shared MinimumDate As Date
配列やコレクション内の要素を並び替えるここでは、配列やコレクション内の要素を並び替える方法を説明します。さらに、並び替えの方法を変更する方法も紹介します。 Array.Sortメソッドを使う基本的には、配列の並び替えは、Array.Sortメソッド(.NET Framework 2.0以降では、Array.Sortジェネリックメソッド)で行います。コレクションの並び替えも、Sortメソッドです。 Array.Sortは、.NET Framework 4.5以降では、イントロソート(Introsort)アルゴリズムを使用し、計算時間は最悪でO(n log n)です。.NET Framework 4.0以前では、クイックソート(quicksort)アルゴリズムを使用し、計算時間は平均でO(n log n)、最悪でO(n ^ 2)です。 ArrayListやList<T>のSortメソッドも、内
注意:指定した要素が存在するかを調べるだけの方法は「配列やコレクション内に指定された要素があるか調べる」に、フィルタ処理に関する説明は「配列やコレクションのフィルタ処理を行う(条件に合う要素を抜き出す)」にそれぞれ移動しました。 ここでは、配列やコレクション内に指定した値と一致する要素が含まれているかを調べ、その位置(インデックス)を知る方法を説明します。さらに、指定した条件にあった要素を検索する方法も紹介します。 なお、for文を使って配列内の要素を一つずつ調べる方法もありますが、説明するまでもないと思いますので、ここでは紹介しません。 IndexOfメソッドを使用した方法IndexOfメソッドを使うことで、配列やコレクション内の要素を検索することができます。検索する値と一致する要素が見つかれば、はじめに見つかったインデックス番号を返します。見つからなければ、 -1 を返します。 補足:
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
名前空間: System.IO アセンブリ:mscorlib.dll, System.IO.FileSystem.Primitives.dll アセンブリ:System.Runtime.dll アセンブリ:System.IO.FileSystem.Primitives.dll アセンブリ:mscorlib.dll アセンブリ:netstandard.dll 重要 一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。 public enum class FileMode public enum FileMode [System.Serializable] public enum FileMode [System.Serializable] [Syst
分類:[.NET 全般] 当方VB.NETにてつくっています。XP SP3です。VWDを使用しています。 チェックボックスが何個かあるページなのですが、もし「2個以上」にチェックがついている場合、メッセージを表示したいのですがどのように書いたらいいのでしょうか? 'チェックボックスが有効になっているかチェックしたい・・・ Dim chkFlg(4) As Boolean Dim chkNone As Boolean chkFlg(0) = CheckBox1.Checked chkFlg(1) = CheckBox2.Checked chkFlg(2) = CheckBox3.Checked chkFlg(3) = CheckBox4.Checked chkFlg(4) = CheckBox5.Checked
配列の次元数の変更 VB 6では、ReDimで配列のサイズを変更する際、配列の次元数は問題にされない。つまり、最初に宣言されたときに2次元配列であることが明示されていない配列を、2次元配列にReDimしても正常に動作するということでる。以下はそれを示したサンプル・ソースである。 1: Private Sub Form_Load() 2: Dim a() As Integer 3: ReDim a(2, 2) 4: For i = 0 To 2 5: For j = 0 To 2 6: a(i, j) = i + j 7: Next 8: Next 9: For i = 0 To 2 10: For j = 0 To 2 11: Debug.Print a(i, j), 12: Next 13: Debug.
2008/1/2010:2 【VB.NET】MarshalAsを利用した属性の適用 以前の記事「【VB.NET】Windows APIの利用」に関連した内容で、Windows APIを利用する場合、APIの引数に適切なデータ型を指定する必要がある。 しかし、Windows APIで利用するデータ型が、VB.NETのデータ型と一致しない場合があり、VB.NETが提供するデータ型では対応しきれない。 (String型の扱いやポインタ型のオブジェクトの指定 等) このような問題を解決するための手段として、Windows APIの実行時に適切なデータ型に変換する機能がある。 それが、MarshalAs属性を利用したデータ型の変換となる。 以下、サンプル。 Imports System.Runtime.InteropServices Module Win32API Declare Auto Sub
このトピックでは、バイト配列のバイトを文字列に変換する方法について説明します。 例 この例では、Encoding.Unicode エンコーディング クラスの GetString メソッドを使用して、バイト配列のすべてのバイトを文字列に変換します。 Private Function UnicodeBytesToString( ByVal bytes() As Byte) As String Return System.Text.Encoding.Unicode.GetString(bytes) End Function バイト配列を文字列に変換するときは、いくつかのエンコード オプションから選択できます。 Encoding.ASCII:ASCII (7 ビット) 文字セットのエンコーディングを取得します。 Encoding.BigEndianUnicode:ビッグ エンディアン バイト順を使
-17976931348623157000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 0000000000000000000000000 〜 179769313486231570000000000000000000000000000000000000000 0000000000000000
はじめに 数ギガバイトの大きさのファイルを操作して、そのデータを読み書きする必要があるとします。1つの選択肢は、シーケンシャルストリームを使ってファイルにアクセスする方法です。ファイルの先頭から末尾までアクセスする必要がある場合は、この方法が適しています。しかし、ランダムアクセスが必要な場合は困った問題が生じます。ストリームをシークする処理に時間がかかりすぎるという問題です。 Windows API開発の経験者なら、メモリマップドファイル(MMF)と呼ばれる昔ながらの手法をご存じでしょう。メモリマップドファイル(ファイルマッピング)とは、ファイルをメモリ内に読み込んで、アプリケーションのアドレス空間の連続するブロックとしてファイルを操作する機能のことです。この機能を使うと、ファイルの読み書きは適切なメモリ位置にアクセスするだけで済むようになります。実際、オペレーティングシステムのローダー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く