2022-01-01から1年間の記事一覧

データとそれを操作するメソッドは同じクラスにまとめる

■データを表現するデータクラスには、そのデータに対する処理(値変更) を行うメソッドもセットで持つべき。 ・データとメソッドが別クラスにあるのは、低凝集。 ・このクラスのデータを変更するときは、必ずこのクラスで行われる と整理されていれば(高凝…

ファクトリメソッド

■クラスのコンストラクタは、なるべくそのクラス自身だけが 参照できることが望ましい。 ・メソッドやプロパティも同様だが、無暗に公開すべきではない。 ・特に引数を持つコンストラクタの場合、色んな場所で色んな引数で 初期化されることは、メンテナンス…

変数や引数は、基本的に不変(イミュータブル)にする

■インスタンス変数、プロパティや、メソッドの引数は、一度値をセットしたら 変更すべきではない。(引数の場合は、呼び出し元から渡された値 を変えるべきではない。 副作用を防ぐ為。 ■readonly readonly修飾子をつけ定義した変数は、コストラクタでのみ …

値を保持する

・AppState docs.microsoft.com

Window.Xaml

WPF

■MainWindow.Xaml

App.Xaml

WPF

■App.Xaml <Application x:Class="WpfApp1.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApp1" StartupUri="MainWindow.xaml"> <Application.Resources> </Application.Resources></Application> ・x:Cl…

子Componentから親に値を引き渡す

子側で引数付きのイベントを起こし、親はそのイベントを購読する。 ●手順 <<Component側>> ①子側でイベントコールバックを定義 [Parameter] public EventCallback<引き渡す値の型> 任意のイベント名 { get; set; } ②値を渡したいタイミングでイベントを起こす イベントは</component側>…

Navigation

コードからページを遷移する場合、NavigationManagerを使う。 (*)DIして使用すればよい。 ■アプリケーションのルートページに遷移する例 @inject NavigationManager NavigationManage; this.NavigationManager .NavigateTo("./");

コンポーネントにコンテンツを渡す

■RenderFragment ・コンポーネントにHTMLなどのコンテンツを渡すことを可能とするもの。 ・コンポーネント側Codeでは、RenderFragment型で、コンテンツを受け取る パラメータを定義 ・コンポーネント側razorでは、受け取ったコンテンツを表示したい場所に、 …

Component間のデータ授受(属性スプラッティング)

コンポーネントに複数のパラメータを一括で渡すことができる。 (*)ただし、一つのコンポーネントに渡せるパラメータのまとまりは一種だけ。 ・CaptureUnmatchedValues属性を定義し、Dictionary型でパラメータを定義する。 ■Component側(パラメータを受ける…

Task,async,await

■Task ・処理したい仕事のまとまり:Task(=複数のメソッド)を保持して、 それを実行開始するもの。手順書。 ・Task.Runは、Taskのインスタンス化と実行を同時にするもの。 ・Task.Runは内部のメソッドを非同期で実行開始だけするもの。 よって、処理が終わ…

DIのやりかた

①Program.csのMainメソッド内にDIするクラス名を設定。 ex)builder.Services.AddScoped<クラス名>(); ②DI先となるコンポーネント(XX.razor)の行頭で、以下の通りInjectする。 @inject クラス名 変数名 ③使用する際は、this.変数名.xxxで使用。 (*)Injectする…