Contract.ForAll 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
ForAll(Int32, Int32, Predicate<Int32>) |
지정된 범위의 모든 정수에 대해 특정 조건이 유효한지 여부를 확인합니다. |
ForAll<T>(IEnumerable<T>, Predicate<T>) |
컬렉션의 모든 요소가 함수에 존재하는지 확인합니다. |
ForAll(Int32, Int32, Predicate<Int32>)
- Source:
- Contracts.cs
- Source:
- Contracts.cs
- Source:
- Contracts.cs
지정된 범위의 모든 정수에 대해 특정 조건이 유효한지 여부를 확인합니다.
public:
static bool ForAll(int fromInclusive, int toExclusive, Predicate<int> ^ predicate);
public static bool ForAll (int fromInclusive, int toExclusive, Predicate<int> predicate);
static member ForAll : int * int * Predicate<int> -> bool
Public Shared Function ForAll (fromInclusive As Integer, toExclusive As Integer, predicate As Predicate(Of Integer)) As Boolean
매개 변수
- fromInclusive
- Int32
predicate
에 전달할 첫 번째 정수입니다.
- toExclusive
- Int32
predicate
에 전달할 마지막 정수보다 1 더 큽니다.
반환
predicate
가 fromInclusive
에서 toExclusive
- 1 사이의 모든 정수에 대해 true
를 반환하면 true
입니다.
예외
predicate
이(가) null
인 경우
toExclusive
가 fromInclusive
보다 작은 경우
예제
다음 예제에서는 메서드를 사용하여 배열에 ForAll null 요소가 있는지 여부를 확인하는 방법을 보여 줍니다.
using System;
using System.Diagnostics.Contracts;
using System.Collections.Generic;
namespace AssumeEx
{
class Program
{
// Start application with at least two arguments
static void Main(string[] args)
{
args[1] = null;
Contract.Requires(args != null && Contract.ForAll(0, args.Length, i => args[i] != null));
// test the ForAll method. This is only for purpose of demonstrating how ForAll works.
CheckIndexes(args);
Stack<string> numbers = new Stack<string>();
numbers.Push("one");
numbers.Push("two");
numbers.Push(null);
numbers.Push("four");
numbers.Push("five");
Contract.Requires(numbers != null && !Contract.ForAll(numbers, (String x) => x != null));
// test the ForAll generic overload. This is only for purpose of demonstrating how ForAll works.
CheckTypeArray(numbers);
}
private static bool CheckIndexes(string[] args)
{
try
{
if (args != null && !Contract.ForAll(0, args.Length, i => args[i] != null))
throw new ArgumentException("The parameter array has a null element", "args");
return true;
}
catch (ArgumentException e)
{
Console.WriteLine(e.Message);
return false;
}
}
private static bool CheckTypeArray(IEnumerable<String> xs)
{
try
{
if (xs != null && !Contract.ForAll(xs, (String x) => x != null))
throw new ArgumentException("The parameter array has a null element", "indexes");
return true;
}
catch (ArgumentException e)
{
Console.WriteLine(e.Message);
return false;
}
}
}
}
Imports System.Diagnostics.Contracts
Imports System.Collections.Generic
Class Program
' Start application with at least two arguments.
Shared Sub Main(ByVal args() As String)
args(1) = Nothing
Contract.Requires(Not (args Is Nothing) AndAlso Contract.ForAll(args, Function(s) s Is Nothing))
' test the ForAll method. This is only for purpose of demonstrating how ForAll works.
CheckIndexes(args)
Dim numbers As New Stack(Of String)
numbers.Push("one")
numbers.Push("two")
numbers.Push("three")
numbers.Push("four")
numbers.Push("five")
Contract.Requires(Not (numbers Is Nothing) AndAlso Not Contract.ForAll(numbers, Function(s) s Is Nothing))
' test the ForAll generic overload. This is only for purpose of demonstrating how ForAll works.
CheckTypeArray(numbers)
End Sub
Private Shared Function CheckIndexes(ByVal args() As String) As Boolean
Try
If Not (args Is Nothing) AndAlso Not Contract.ForAll(0, args.Length, Function(i) args(i) Is Nothing) Then
Throw New ArgumentException("The parameter array has a null element", "args")
End If
Return True
Catch e As ArgumentException
Console.WriteLine(e.Message)
Return False
End Try
End Function 'CheckIndexes
Private Shared Function CheckTypeArray(ByVal xs As Stack(Of String)) As Boolean
Try
If Not (xs Is Nothing) AndAlso Not Contract.ForAll(xs, Function(s) s Is Nothing) Then
Throw New ArgumentException("The parameter array has a null element", "Stack")
End If
Return True
Catch e As ArgumentException
Console.WriteLine(e.Message)
Return False
End Try
End Function 'CheckTypeArray
End Class
설명
toExclusive
매개 변수는 0부터 시작하는 정수 범위의 길이를 쉽게 사용할 수 있도록 마지막 정수보다 1개 이상입니다. 예를 들어 정수 0~4의 경우 5로 설정됩니다.
추가 정보
적용 대상
ForAll<T>(IEnumerable<T>, Predicate<T>)
- Source:
- Contracts.cs
- Source:
- Contracts.cs
- Source:
- Contracts.cs
컬렉션의 모든 요소가 함수에 존재하는지 확인합니다.
public:
generic <typename T>
static bool ForAll(System::Collections::Generic::IEnumerable<T> ^ collection, Predicate<T> ^ predicate);
public static bool ForAll<T> (System.Collections.Generic.IEnumerable<T> collection, Predicate<T> predicate);
static member ForAll : seq<'T> * Predicate<'T> -> bool
Public Shared Function ForAll(Of T) (collection As IEnumerable(Of T), predicate As Predicate(Of T)) As Boolean
형식 매개 변수
- T
collection
에 포함된 형식입니다.
매개 변수
- collection
- IEnumerable<T>
에 전달할 predicate
형식 T
의 요소를 그릴 컬렉션입니다.
- predicate
- Predicate<T>
collection
에 모든 요소가 존재하는지 확인할 함수입니다.
반환
predicate
가 T
에 있는 모든 collection
형식 요소에 대해 true
를 반환하는 경우에만 true
입니다.
예외
collection
또는 predicate
가 null
인 경우
예제
다음 예제에서는 사용 ForAll 하는 방법을 보여 줍니다는 메서드를 컬렉션에 null 요소가 있는지 여부를 확인 합니다.
using System;
using System.Diagnostics.Contracts;
using System.Collections.Generic;
namespace AssumeEx
{
class Program
{
// Start application with at least two arguments
static void Main(string[] args)
{
args[1] = null;
Contract.Requires(args != null && Contract.ForAll(0, args.Length, i => args[i] != null));
// test the ForAll method. This is only for purpose of demonstrating how ForAll works.
CheckIndexes(args);
Stack<string> numbers = new Stack<string>();
numbers.Push("one");
numbers.Push("two");
numbers.Push(null);
numbers.Push("four");
numbers.Push("five");
Contract.Requires(numbers != null && !Contract.ForAll(numbers, (String x) => x != null));
// test the ForAll generic overload. This is only for purpose of demonstrating how ForAll works.
CheckTypeArray(numbers);
}
private static bool CheckIndexes(string[] args)
{
try
{
if (args != null && !Contract.ForAll(0, args.Length, i => args[i] != null))
throw new ArgumentException("The parameter array has a null element", "args");
return true;
}
catch (ArgumentException e)
{
Console.WriteLine(e.Message);
return false;
}
}
private static bool CheckTypeArray(IEnumerable<String> xs)
{
try
{
if (xs != null && !Contract.ForAll(xs, (String x) => x != null))
throw new ArgumentException("The parameter array has a null element", "indexes");
return true;
}
catch (ArgumentException e)
{
Console.WriteLine(e.Message);
return false;
}
}
}
}
Imports System.Diagnostics.Contracts
Imports System.Collections.Generic
Class Program
' Start application with at least two arguments.
Shared Sub Main(ByVal args() As String)
args(1) = Nothing
Contract.Requires(Not (args Is Nothing) AndAlso Contract.ForAll(args, Function(s) s Is Nothing))
' test the ForAll method. This is only for purpose of demonstrating how ForAll works.
CheckIndexes(args)
Dim numbers As New Stack(Of String)
numbers.Push("one")
numbers.Push("two")
numbers.Push("three")
numbers.Push("four")
numbers.Push("five")
Contract.Requires(Not (numbers Is Nothing) AndAlso Not Contract.ForAll(numbers, Function(s) s Is Nothing))
' test the ForAll generic overload. This is only for purpose of demonstrating how ForAll works.
CheckTypeArray(numbers)
End Sub
Private Shared Function CheckIndexes(ByVal args() As String) As Boolean
Try
If Not (args Is Nothing) AndAlso Not Contract.ForAll(0, args.Length, Function(i) args(i) Is Nothing) Then
Throw New ArgumentException("The parameter array has a null element", "args")
End If
Return True
Catch e As ArgumentException
Console.WriteLine(e.Message)
Return False
End Try
End Function 'CheckIndexes
Private Shared Function CheckTypeArray(ByVal xs As Stack(Of String)) As Boolean
Try
If Not (xs Is Nothing) AndAlso Not Contract.ForAll(xs, Function(s) s Is Nothing) Then
Throw New ArgumentException("The parameter array has a null element", "Stack")
End If
Return True
Catch e As ArgumentException
Console.WriteLine(e.Message)
Return False
End Try
End Function 'CheckTypeArray
End Class
추가 정보
적용 대상
.NET