構文
解説
使用例Predicate デリゲートと Array.Find メソッドを使用して、Point 構造体の配列を検索するコード例を次に示します。X フィールドと Y フィールドの積が 100,000 を超える場合は、デリゲートが表す ProductGT10 メソッドから true が返ります。Find メソッドでは、配列の各要素に対してデリゲートが呼び出され、テスト条件を満たす最初のポイントで停止します。
メモ |
|---|
| Visual Basic や C# のユーザーは、デリゲートを明示的に作成する必要はありません。また、ジェネリック メソッドの型引数を指定する必要もありません。コンパイラでは、指定するメソッドの引数から必要な型を判断します。 |
Imports System Imports System.Drawing Public Class Example Public Shared Sub Main() ' Create an array of five Point structures. Dim points() As Point = { new Point(100, 200), _ new Point(150, 250), new Point(250, 375), _ new Point(275, 395), new Point(295, 450) } ' To find the first Point structure for which X times Y ' is greater than 100000, pass the array and a delegate ' that represents the ProductGT10 method to the Shared ' Find method of the Array class. Dim first As Point = Array.Find(points, _ AddressOf ProductGT10) ' Note that you do not need to create the delegate ' explicitly, or to specify the type parameter of the ' generic method, because the compiler has enough ' context to determine that information for you. ' Display the first structure found. Console.WriteLine("Found: X = {0}, Y = {1}", _ first.X, first.Y) End Sub ' This method implements the test condition for the Find ' method. Private Shared Function ProductGT10(ByVal p As Point) As Boolean If p.X * p.Y > 100000 Then Return True Else Return False End If End Function End Class ' This code example produces the following output: ' 'Found: X = 275, Y = 395
using System; using System.Drawing; public class Example { public static void Main() { // Create an array of five Point structures. Point[] points = { new Point(100, 200), new Point(150, 250), new Point(250, 375), new Point(275, 395), new Point(295, 450) }; // To find the first Point structure for which X times Y // is greater than 100000, pass the array and a delegate // that represents the ProductGT10 method to the Shared // Find method of the Array class. Point first = Array.Find(points, ProductGT10); // Note that you do not need to create the delegate // explicitly, or to specify the type parameter of the // generic method, because the C# compiler has enough // context to determine that information for you. // Display the first structure found. Console.WriteLine("Found: X = {0}, Y = {1}", first.X, first.Y); } // This method implements the test condition for the Find // method. private static bool ProductGT10(Point p) { if (p.X * p.Y > 100000) { return true; } else { return false; } } } /* This code example produces the following output: Found: X = 275, Y = 395 */
プラットフォームWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照(predicate から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/12/07 08:21 UTC 版)
述語(じゅつご、predicate)とは、
述語が一つである文のことを単文(たんぶん)といい、述語が二つ以上存在する文を複文(ふくぶん)または重文(じゅうぶん)という。複文においてそれぞれの述語を中心としたまとまりが節である。
述語に対して、述語が表す動作や状態の主体といった文法的意味を表す格を主格と呼ぶが、印欧語などにおいて主格の名詞句は文の先頭に置かれると共に、「I love him.」と「Mary loves him.」のように主格の名詞の変化に合わせて述語動詞の語形も変化させる。このように、述語と文法関係が一致する主格名詞句を主語(subject)と、一部印欧語では呼ぶ。印欧語などの文構造は主語と述語の主述関係によって形成されている。ちなみに対格の名詞句は文法関係上、目的語と呼ばれ、英語などは主語・述語・目的語の語順になっている。
日本語などの言語では格を助詞によって表す。日本語において主格は「が」という格助詞によって導かれるが、「が」による名詞句は必ず先頭に来るとは限らず、先頭に置かれるのは「は」という助詞によって導かれる名詞句である。この名詞句はその文で(あるいはそれ以降の文も含めて)主題(topic/theme)として取りあげられるものを表す。主題は主格とは限らず、例えば「私はご飯を食べた」では主格であるが、「ご飯は私が食べた」では対格である。このように日本語の基本的な文構造は主題と述語による題述関係によって形成されている。
学校文法では「が」で表される語も「は」で表される語も主語と呼ばれるが、このような西洋言語学由来の「主語」という語や主述関係を日本語文法に適用すべきでないとする主語廃止論を唱えたのは三上章である。この主張はその生前に受け入れられることはなかったが、その後、一定の評価を受けるようになっている。
日本語の述語は通常1文節だが、2文節以上のものを、述部(じゅつぶ)と呼ぶ。述部になる連文節は、次のようなものがある。
なお、次に掲げる語は、述部にならない。
述語に使われるのは、動詞、形容詞、形容動詞、名詞+コピュラである。これらをそれぞれ動詞文・形容詞文・形容動詞文・名詞文(コピュラ文)と称する。日本語では述語は最後に置かれるが、その語形には普通体(常体)と丁寧体(敬体)がある。普通体は、動詞の終止形が「-u」(「う段」音)、形容詞が「い」、形容動詞・コピュラが「だ」で終わるものをいう。丁寧体は動詞は「ます」、その他は「です」で終わるものをいう。
|
この節は検証可能な参考文献や出典が全く示されていないか、不十分です。 (2018年7月)
|
そもそも述語とは、形式論理学における命題<AはBである>のB(Aについて語る事柄)に当たるものを、アリストテレースがギリシア語で古希: κατηγορούμενον (katēgorūmenon)と表現したことにさかのぼるという。これが、その後ラテン語でpraedictumと表現され、論理学及び文法の用語として次第に定着、今日のヨーロッパ諸言語でも継承され(例えば英語predicate)、また他の言語でも用いられる様になり、日本でも述語と訳してきたものである(形式論理学では賓辞とも、文法では述部とも訳す)。特定の言語を超えてただ<AはBである>という形の命題だけを扱う形式論理学では、述語を上のように約束すればよいにしても、各言語の様々の文型を対象とする文法においては、果たして文法上の述語とは何かを改めて問う必要がある。だが、その文法上の述語とされてきたものは、実は論理学をいさかれて純粋に今日の言語学(文法理論)の観点から吟味し直してみても、確かに妥当な(そう認められるだけの根拠を持つ)ものの様である。ヨーロッパ諸言語が、文法上、際立った文成分を主語と呼んで他の文成分と別格に扱い、一般に、残りを述語と呼んで文を二分してきたのは、確かに自然なことであると頷ける。