LINQPadの拡張メソッドとメソッドの完全なリストを持っている人はいますか?
.Dump()
SubmitChanges()
ベストアンサー1
Dump()
LINQPad は、とという 2 つの拡張メソッド (LINQPad.Extensions 内) を定義しますDisassemble()
。LINQPadDump()
の出力フォーマッタを使用して出力ウィンドウに書き込み、見出しを指定できるようにオーバーロードされます。
typeof (int).Assembly.Dump ();
typeof (int).Assembly.Dump ("mscorlib");
最大再帰深度を指定して、デフォルトの 5 レベルを上書きすることもできます。
typeof (int).Assembly.Dump (1); // Dump just one level deep
typeof (int).Assembly.Dump (7); // Dump 7 levels deep
typeof (int).Assembly.Dump ("mscorlib", 7); // Dump 7 levels deep with heading
Disassemble() は任意のメソッドを に逆アセンブルしIL
、出力を文字列で返します。
typeof (Uri).GetMethod ("GetHashCode").Disassemble().Dump();
これら 2 つの拡張メソッドに加えて、LINQPad.Util には便利な静的メソッドがいくつかあります。これらは自動補完で文書化されており、次のものが含まれます。
- コマンド- シェルコマンドまたは外部プログラムを実行する
- XhtmlWriter の作成- LINQPadのDump()フォーマッタを使用するテキストライターを作成します
- Sql出力ライター- SQL出力ウィンドウに書き込むテキストライターを返します
- クエリを取得、サンプルを取得- 保存したクエリ/サンプルを表すオブジェクトのコレクションを返します (たとえば、[編集] | [すべて検索] を使用して検索を実行します)
- ハイライト- ダンプ時に黄色でハイライト表示されるようにオブジェクトをラップします
- 水平実行- 同じ行に一連のオブジェクトをダンプできます
LINQPad は HyperLinq クラスも提供します。これには 2 つの目的があります。1 つ目は通常のハイパーリンクを表示することです。
new Hyperlinq ("www.linqpad.net").Dump();
new Hyperlinq ("www.linqpad.net", "Web site").Dump();
new Hyperlinq ("mailto:[email protected]", "Email").Dump();
これを以下と組み合わせることができますUtil.HorizontalRun
:
Util.HorizontalRun (true,
"Check out",
new Hyperlinq ("http://stackoverflow.com", "this site"),
"for answers to programming questions.").Dump();
結果:
チェックアウトこのサイトプログラミングに関する質問への回答。
HyperLinq の 2 番目の目的は、クエリを動的に構築することです。
// Dynamically build simple expression:
new Hyperlinq (QueryLanguage.Expression, "123 * 234").Dump();
// Dynamically build query:
new Hyperlinq (QueryLanguage.Expression, @"from c in Customers
where c.Name.Length > 3
select c.Name", "Click to run!").Dump();
LINQPad で独自の拡張メソッドを作成することもできます。「My Queries」に移動し、「My Extensions」というクエリをクリックします。ここで定義されるすべての型/メソッドは、すべてのクエリからアクセスできます。
void Main()
{
"hello".Pascal().Dump();
}
public static class MyExtensions
{
public static string Pascal (this string s)
{
return char.ToLower (s[0]) + s.Substring(1);
}
}
4.46(.02)で新しいクラスとメソッドが導入されました:
- DumpContainer (クラス)
- OnDemand(拡張メソッド)
- Util.ProgressBar (クラス)
さらに、Hyperlinqクラスは、アクションリンクをクリックしたときに呼び出されるデリゲート。これにより、外部 Web ページにリンクするだけでなく、コード内でリンクに反応できるようになります。
DumpContainer
内容を置き換えることができるブロックを出力ウィンドウに追加するクラスです。
注記!適切な場所に自分自身を置く.Dump()
ことを忘れないでください。DumpContainer
使用方法:
var dc = new DumpContainer();
dc.Content = "Test";
// further down in the code
dc.Content = "Another test";
OnDemand
は、パラメータの内容を出力ウィンドウに出力するのではなく、クリック可能なリンクを追加する拡張メソッドです。このリンクをクリックすると、リンクが.Dump()
パラメータの編集された内容に置き換えられます。これは、コストがかかったり、多くのスペースを占有したりする、時々必要になるデータ構造に最適です。
注記!適切な場所で.Dump()
電話をかけた結果を覚えておいてください。OnDemand
使用するには:
Customers.OnDemand("Customers").Dump(); // description is optional
Util.ProgressBar
出力ウィンドウ内にグラフィカルなプログレスバーを表示できるクラスです。コードが進むにつれて変更できます。
注記!.Dump()
Util.ProgressBar オブジェクトを適切な場所に配置してください。
使用するには:
var pb = new Util.ProgressBar("Analyzing data");
pb.Dump();
for (int index = 0; index <= 100; index++)
{
pb.Percent = index;
Thread.Sleep(100);
}