2017-10-31 9 views
0

私はこの例をLINQ In Actionの本から探しています。C#generics、GetProcessesはどこから提供されますか?

using System; 
using System.Collections.Generic; 
using System.Diagnostics; 

static class LanguageFeatures 
{ 
    static void DisplayProcesses() 
    { 
    List<String> processes = new List<String>(); 
    foreach (Process process in Process.GetProcesses()) 
    processes.Add(process.ProcessName); 
    ObjectDumper.Write(processes); 
    } 


    static void Main() 
    { 
    DisplayProcesses(); 
    } 
} 

私はListクラスがするForEachメソッドを持っていますが、私はGetProcessesは、コンパイラによって認識されているかを把握することができないことを理解しています。私はあなたがユーザー定義の方法としてこれを考えていると思います

+1

どういう意味ですか? – john

+0

'GetProcesses'はジェネリックスとは関係ありません。これは 'Process'クラスの静的メソッドです。私はあなたの混乱がどこから来るのか分からない(ForEachについて何を言っているのかわからない) –

+0

これは 'System.Diagnostics.Process.GetProcesses()'の静的メソッドです。 – Evk

答えて

3

は、しかし、この方法は、たSystem.DiagnosticsのProcessクラスのメンバーは、配列を作成する

https://msdn.microsoft.com/tr-tr/library/1f3ys1f9(v=vs.110).aspx

このメソッドを使用するDLLです新しいプロセスコンポーネントを作成し、それらをローカルコンピュータ上のすべてのプロセスリソースに関連付けます。

2

.NETフレームワークには、OS機能上のラッパーである、Systems.Diagnostics.Processのような一連の事前ビルドされたクラスがあり、この情報を提供します。どのような形でジェネリックに関連するものでもありません。

本書の著者は、この静的クラスメソッドを使用して、LINQ機能を示すためにアイテムのコレクションを取得するのに便利です。

関連する問題