program study story

プログラムの勉強 アウトプット

IT_ボックス化について

スタックとヒープとは簡単に:

スタック・ヒープというメモリの管理方法があり、
値型の領域がスタック、参照型の領域がヒープになっている。
値型をobject型に代入できるが、値型(スタック上に値がある)から参照型(ヒープ上に値がある)
への変換が行われます。
これをボックス化という。
-------------------------------------------------------------
この逆に、ボックス化したobjectから、元の型にキャストすると、
ボックス化解除処理がかかる。
int x=5;
object y=x;  // intをobjectに。ボックス化が起きる。
int z = (int)y;  // objectから元の型に。ボックス化解除。
-------------------------------------------------------------
ボックス化を避けるには
ピープ上の領域確保は、スタックと比べると重たい処理。
値型の利点はスタック上に値を置く(= ヒープを使わない)ことによる性能向上
対策としては、具体的な型をできる限り指定するだけでボックス化は回避できる。
例:
 値型をobjectで受け取るのをやめる。
 
 

C#_継承について

継承について:

■ 継承とは
あるクラスから性質を受け継いだ新しいクラスを作ることです。

■ コンストラクタ呼び出し

派生クラスのインスタンスが生成される際、
派生クラスのコンストラクタが呼び出される前に
基底クラスのコンストラクタが呼び出されます。

例:

using System;

class Base
{
public Base()
{
Console.Write("base constractor called\n");
}
}

class Derived : Base
{
public Derived()
{
Console.Write("derived constractor called\n");
}
}

class InheritTest
{
static void Main()
{
Derived d = new Derived();
}
}

続きを読む

VBAの基礎_復習_マクロの操作

Excelのマクロ機能を使うことで、いつも行っていることが、自動化することができます。

 

例えば、ある表のデータで絞込みなどの簡単なことから、少し手がかかりそうなことまで自動化することができます。

 

マクロの記録機能

マクロの記録機能を使うことで、エクセル操作を1度にまとめて行うことができます。

 

マクロの記録機能活用の流れ。

 

続きを読む

C# クラスと構造体についてメモ

構造体とは

ある対象に関連する項目をまとめて1つのかたまりにしたもの

関連する項目はフィールド(メンバ変数)と呼ばれ、変数や文字列などをフィールドとする
ことができます。
フィールドを使い、処理を定義することが可能。

同じように項目をまとめて1つのかたまりにしたもので、配列があります。
配列の場合、同じ型のモノしか1つのかたまりにできません。

構造体はint型や文字列など型の違うモノでも1つのかたまりにできます。

構造体とクラスについて

共通点:
インスタンス化して使用(インスタンス化して使用)
・メソッドの定義(フィールドだけでなく、メソッドを定義して処理を行うことが出来る)
・引数ありコンストラクタの定義(インスタンス化してフィールドの値を初期化する場合などに使用)
・インターフェースを実装(複数実装も可)

違い:
インスタンス化したオブジェクトの型。
                    構造体   クラス
オブジェクトの型             値型    参照型
クラスの継承              ※不可    可能
フィールド初期化子の使用         不可    可能 
デフォルトコンストラクタ(引数の定義)   不可    可能
デストラクタの定義            不可    可能

※System.ValuTypeのみ継承継承元にはなれない

使い分け:
構造体は、制限がクラスに比べて多い分、軽量のオブジェクトを表すのに適している。
参照型の機能が必要ない場合は、
クラスとして実装するよりは構造体として定義した方が効率的に処理される

例えば、3次元の点座標を大量に扱うCGなどで使用する場合など。。。

 

続きを読む

エッセンシャルWPF_読んで、わからなかった用語_書き覚え

GUIとは

Graphical User Interfaceの略。

コンピューターの画面上に表示されるウィンドウやアイコン、ボタン、プルダウンメニューなどを使い、マウスなどのポインティングデバイスで操作できるインターフェース。

■マネージオブジェクトモデルとは

マネージオブジェクトとは人により、認識のばらつきがあるようです。

分解して、和訳すると、

▼マネージ

管理すること。経営すること。処理すること

▼オブジェクト

操作の対象となっているデータ、または、オブジェクト指向の考え においてプログラムが扱う対象のこと

▼モデル

型。模型

■メッセージループとは

 Windowsアプリケーションは、受け取ったメッセージを1つずつ処理する。すべてのメッセージを処理し終えると、また次のメッセージが来るのを待つ。

メッセージを待ち→受けとったらそれを処理→次のメッセージを待つ

これの一連の動作を、Windows用語で「メッセージ・ループ」と呼ぶ。

 

CLR型システムとは

Common Language Runtimeの略。

共通言語ランタイムのシステムのこと。

 

■ウィジットとは

ホーム画面上で、ひと目で情報を得られるように小型化されたアプリのこと。

 

■オンデマンドとは

ユーザの要求があった際に、その容共に応じてサービスを提供すること

 

■バッファリングとは

複数の機器やソフトウェアの間でデータをやり取りするときに、処理速度や転送速度の差を補ったり、通信の減速や中断に備えて専用の記憶領域に送受信データを一時的に保存しておくこと

 

■ハングアップとは

動作中のコンピュータやソフトウェアが機能を停止し、操作を受け付けなくなったり外部からの通信に応答しなくなること

サーフェスとは

面、表面、平面、水面、地表面、外見、上辺、(水面に)浮上する、表面化する、明るみに出る、平らにする、面をつける、などの意味を持つ英単語。

■ベクタベースとは

▼ベクタ

「方向と大きさ」のように、互いに独立な複数の異なる値の組み合わせとして表される量のこと。数学や物理学では、「ベクトル」のこと。

▼ベース

土台。基礎。基本。

アンチエイリアシングとは

サンプリングやダウンサンプリングでエイリアシングが起きないようにするための処理

エイリアシング

アナログ信号をサンプリングする際に起こる現象のこと。

▼サンプリング

標本化。リサンプリングの1つのこと。

連続信号を一定の間隔をおいて測定することにより、離散信号として収集すること。

 ▼連続信号

  実数値の定義域(通常、時間)の関数として表される変化する値(信号)のこと。

 ▼リサンプリング

  ある標本点系列でサンプリングされた信号を、別の標本点系列でサンプリングされた信号に変換すること

▼ダウンサンプリング

サンプリング周波数を下げる変換のこと。(対義語:アップサンプリング)

 

レンダリングとは

データ記述言語やデータ構造で記述された抽象的で高次の情報から、コンピュータのプログラムを用いて画像・映像・音声などを生成すること

■ネストとは

あるものの中に、それと同じ形や種類のものが入っている状態や構造のこと。

■セマンティックスとは

「データの意味」のこと。データの「中身」を指すこと。

シンタックスとの関係がある。

シンタックスとは

(データの形式や構造)に対応する概念。データの「枠組み」を指す。

セマンティックスとの関係がある。

エンコーディングとは

ある形式のデータを別形式のデータに変換する。

■インラインコードとは

サブルーチンを呼び出すためのコードの代わりに、直接コード内に記述された、サブルーチンの内容のこと

■ディレクティブとは

コンパイル時にコンパイラーに与える細く情報のこと

XML プレフィックスとは

XML名前空間を表す際に使われる<A:oo>のAの部分のこと。

<・・・xmls:プレフィックス="識別するためのURI">

    ・・

<プレフィックス:要素名>・・・・<プレフィックス:要素名>

 

XMLパーサとは

XML形式の文書やアイルから、テキストデータの部分だけを抜き出して、プログラムやアプリケーションソフトが利用しやすい形に変換するためのプログラムまたはソフトウェアのこと。

■シームレスとは

継ぎ目のない状態のこと。

例:

アプリケーションソフトの中で、それぞれの機能が区切られることなく一貫して操作することが出来る状態などのこと。

アクセラレートとは

「速力を速める」、「加速する」という意味。

オプションのハードウェアやソフトウェアを使いすることにより、システムの性能をさらに向上させる場合などに使われる。

■マテリアルとは

バイスが変わっても使いやすいシームレスな概念。

■ボイラーレポートコードとは

言語仕様上省くことができない定型的なコードのこと。

本質的なロジックでないため、アプリケーションを実装するうえで冗長なコードとなる。

■インクルードとは

あるファイルの中に別のファイルに記述された内容を追加する機能のこと。

■オーサリングツールとは

文字や画像、音楽、動画など、いろいろな素材を組み合わせたソフトウェアを作成するツール。

コンピュータでいわゆるメディアコンテンツを作るためのアプリケーションソフトウェア

AdobeDirectorがその代表。

 

 

 

 

C#_$文字列補間について

♦補間とは

 数値表や観測で得られた値に基づいて、その間にある、表が載せないまたは観測していない数値に対する値を算出すること。

リテラルとは
 数値や文字列をコードに直接記述したものをリテラルと呼ぶ。
例えば、整数(1...10...100など)や、"Hello World!!"などの文字列をコードに直接書かれたデータがリテラル
(注)
 コードに直接書かれるため、値の変更がないものであるが、定数(const)ではないということを認識する。
 
文字列リテラルを挿入文字列と認識するため、先頭に「$」記号を追加する。
 
■補間式の構造 
 {<interpolationExpression>[,<alignment>][:<formatString>]}
 []内は省略可
using System.Windows;
 
namespace ConsoleApp1
{    
     class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
           int[] numbers = new int[4];
       int total = 0;
         for (int ctr = 0; ctr <= 2; ctr++)
       {
         int number = rnd.Next(1001);
          numbers[ctr] = number;
         total += number;
        }    
          numbers[3] = total;
        object[] values = new object[numbers.Length];
           numbers.CopyTo(values, 0);
        Console.WriteLine($"{values[0]} + {values[1]} + {values[2]} = {values[3]}",
           values);
        }
    }
}