読者です 読者をやめる 読者になる 読者になる

C#_ソリューションエクスプローラーにて、現在開いているファイルにマーカをつける

C# プログラム

「 Form1.cs」ファイルを開いている時、エクスプローラーにて

f:id:koshinRan:20170323231313j:plain を f:id:koshinRan:20170323231314j:plain としたい。

  1. メニュー の「ツール」にある「オプション」を選択
  2. 左の「プロジェクトおよびソリューション」を選択
  3. 「アクティブな項目を~選択された状態にする(C)」にチェックを入れる
  4. 「OK」クリック

 

以上。

↓ キャプチャ
1.
f:id:koshinRan:20170323231316j:plain

2.3
f:id:koshinRan:20170323231317j:plain

 

【画面全体】

f:id:koshinRan:20170323231315j:plain

チェックを入れる ↓
f:id:koshinRan:20170323231318j:plain

f:id:koshinRan:20170323231319j:plain

デバッグ時、次のコードを実行

プログラム IT全般

ブレークポイントを貼り、その次のコードを一行ずつ実行したい時は

ステップオーバー

または

ステップイン

を実行する。

 

どちらも、
一行単位でプログラムを実行して中断する。

異なる点は、関数を呼び出している場合
ステップオーバー
呼出した関数の内部では処理が中断しない。関数を呼出し後に中断する。

ステップイン
呼出した関数の内部でも一行ずつ処理が中断する。

 

ステップオーバー
f:id:koshinRan:20170323012955j:plain

 

ステップイン
f:id:koshinRan:20170323013011j:plain

 

マウスで操作するより、ショートカットキーを覚えた方が楽。
IDE統合開発環境 ) によって変わるので注意。
以上。

C#_pictureBox の背景画像設定

C# プログラム

※pictreBox のDockFill

1) BackgroundImage から画像を選択。

2) BackgroundImageLayout から画像の配置を選択。

3) 終わり。

※クリックで画像拡大
赤枠が 1) 、選択部分が 2) での設定箇所。

f:id:koshinRan:20170322000144j:plain

 

メンバ名説明 
 None

左上に配置される。
画像は元サイズ。

f:id:koshinRan:20170321235900j:plain

 Tile

全体に並べて表示する。
画像は元サイズ。

f:id:koshinRan:20170321235901j:plain

Center

PictureBox の中央に表示する。
画像は元サイズ。

f:id:koshinRan:20170321235902j:plain

Stretch

PictureBox のサイズに合わせて表示する。
画像は拡大・縮小され、比率が変動する

f:id:koshinRan:20170321235903j:plain

Zoom

PictureBox のサイズに合わせて表示する。
画像は拡大・縮小され、比率が変動しない

f:id:koshinRan:20170321235904j:plain

 

以上。
背景でなく、Image に画像を表示する時は下記参照。

Image に蜂画像をZoom、BackgroundImage に黄色画像をStretch とすると、
f:id:koshinRan:20170321235905j:plain
のようになる。

C#_pictureBox に貼り付けた画像の表示設定

C# プログラム

覚えているつもりが覚えていなかったのでmemo。

前提:Image で画像を設定。

 (クリックで画像拡大)
1 ) Image プロパティで画像を設定。
f:id:koshinRan:20170321011622j:plain

2 ) SizeMode プロパティで表示方法を設定。
f:id:koshinRan:20170321011616j:plain

3 ) 終わり。

 

ソースで設定する場合。

pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

を Zoom にしたり、AutoSize にしたり。

 

※ Picture Box のDock は Fill

メンバ名 説明
Normal

左上に配置する。
画像大きさは元サイズ。

f:id:koshinRan:20170321011617j:plain

StretchImage

PictureBox のサイズに合わせて表示する。
画像は拡大または縮小され、比率が変動する。

f:id:koshinRan:20170321011618j:plain

AutoSize

前提:Form の AutoSize プロパティを True で設定。
画像が全表示されるように Picture Box が拡大する。

f:id:koshinRan:20170321011617j:plain が、実行すると f:id:koshinRan:20170321015034j:plain になる。

CenterImage

Picture Box の中央に表示する。画像サイズは元のまま。
画像が大きい場合、見切れる。

f:id:koshinRan:20170321011620j:plain

Zoom

Pictre Box の中央にサイズを合わせて表示する。
StretchImage と異なり、画像比率は保持。
( 画像は拡大・縮小される )

f:id:koshinRan:20170321011621j:plain

 

以上。

 

Memo

メンバ変数:クラスの中にある変数。属性を定義したもの。

AutoSize:CheckBox.AutoSize と同じ役割だよね。調べてないけど。

オブジェクト と インスタンス

IT全般 プログラム

 結論
オブジェクトあらゆる物インスタンス具体的な事物
深入りできない。というか調べ始めたら終わらない。それぐらい ( 自分にとっては ) 重い。

object     [可算名詞]:(知覚できる ) 、物体。( 動作などの ) 対象。目的。

instance [可算名詞]:性質・特徴を示す代表的な例、実例、実証、事実。
( example は一般的原則・事例などを示す具体的な例 )

 

オブジェクトは、クラス と インスタンス 含めてオブジェクトという。

こちらから ↓
http://www.shos.info/develop/oo/ooword.html#objectandinstance

 

参照サイト
http://kippo28.blog78.fc2.com/blog-entry-4.html
http://wa3.i-3-i.info/word1118.html

 

以上。

 

自分用おさらい ↓ 
クラス           が クッキー型設計図
インスタンス  が クッキー型でくり抜いたクッキー や 設計図を基にして作ったもの

● new Fuga();
Fuga クラスのインスタンスが新しく作られた。

● f = new Fuga();
Fuga クラスのインスタンスを新しく作って、変数 f に代入。

● f は「作ったインスタンスがどこか」という場所を示すものが実は入ってる。

 


コンストラクタとは

IT全般 プログラム

 

前提オブジェクト指向プログラミング言語

 

コンストラクタとは、

new () した時、つまりインスタンス化した瞬間に実行されるメソッド

construct:組み立てる、構成する、建設する。

 

hoge = 型 new hogege();
この時にクラス hogege に記述されている、コンストラクタという関数が呼ばれる。

 

以下サンプルコード。 C# で記述。
Form1 の New Frame をクリックすると、FormNew が立ち上がるというコード。

f:id:koshinRan:20170318013435j:plain
 ※)今回のコンストラクタ説明に不要なコードは消した。
Form1FormNew は別ファイル。
( 基本、1 ファイルにつき1クラス。
1 つのファイルに複数のクラスを書くこともできるらしい。非推奨。)

public partial class Form1 : Form
{
    private void newFrameToolStripMenuItem_Click(object sender, EventArgs e)
    {
        FormNew fN = new FormNew();
    }
}


public partial class FormNew : Form
{
    //コンストラクタ。new した瞬間に呼ばれる。
    public FormNew()
    {
        this.Show();
    }
}

Form1 のクラスで、new FormNew() した瞬間に、
FormNew クラスの、 public FormNew() 関数が呼ばれた。
コンストラクタ( FormNew() )には、this.Show() と
記述したので、インスタンス化した瞬間にフォームFormNew が表示する。
(this は、作られたインスタンスのこと。上記では fN になる。)

 

コンストラクタの宣言のルール。( 通常メソッドと異なる点 )

コンストラクタは、クラス名と同じにしなければならない。

コンストラクタには戻り値の型がない。( void でもない )

 

こちらから参照。
http://wa3.i-3-i.info/word13646.html

 

以下は補足 ( 通常メソッドを呼ぶ場合 )

class FormNew にNewTest() 関数が記述されていた場合、この関数を
class Form1 から呼び出すには、

fN.NewTest();

と記述する必要がある。

public partial class Form1 : Form
{
    private void newFrameToolStripMenuItem_Click(object sender, EventArgs e)
    {
        FormNew fN = new FormNew();
       
        fN.NewTest();
    }
}


public partial class FormNew : Form
{
    //コンストラクタ。new した瞬間に呼ばれる。
    public FormNew()
    {
        this.Show();
    }
   
    //明示的に呼び出さないと使えない。
    public void NewTest(){
        MessageBox.Show("Hi");
    }
}

 

以上。
ちなみに、対義語はデストラクタ(destructor:廃物焼却炉)

C#_ジェネリッククラス・メソッドの記述方法

C# プログラム

続き。 

ジェネリッククラスをの記述方法

class  クラス名 <型引数>
  where T : 型引数の型が満たすべき条件
{
    //hoge
}

 

ジェネリックメソッドの記述方法

アクセスレベル  戻り値の型  メソッド名 <型引数> (引数リスト)
  where T : 型引数の型が満たすべき条件
{
    //fuga
}

 

型引数の型が満たすべき条件 (制約条件) とは

where で指定した型しか
ジェネリッククラス や ジェネリックメソッドを呼び出せないように
制約をかけることができる。

付加できる条件は5つ

制約付与説明
where T : struct 型 T は「値型
where T : class 型 T は「参照型
where T : new()

引数なしのコンストラクタを持つ。

他の制約条件と同時に課す場合には、
一番最後に指定する。

where T : [base class] 型 T は [base class] で指定された型を継承する。
where T : [interface]

型 T は[interface] で指定されたインターフェースを
実装する。

コンストラクタ:
new した瞬間 ( インスタンスを作成したタイミング ) に実行されるメソッド。

constructor: 建設者
construct:組み立てる、建築する、構成する。

インスタンスを作成することを、インスタンス化するともいう。
インスタンス化とは、ジェネリックなクラス・メソッドに対して
具体的な型を与えること。

 

こちらから。
http://ufcpp.net/study/csharp/sp2_generics.html
http://www.atmarkit.co.jp/ait/articles/0602/11/news011_3.html

 

以上。
色々不明な単語が出てきたが後ほど。