ParameterInfo.IsOut Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bunun bir çıkış parametresi olup olmadığını belirten bir değer alır.
public:
property bool IsOut { bool get(); };
public bool IsOut { get; }
member this.IsOut : bool
Public ReadOnly Property IsOut As Boolean
Özellik Değeri
true
parametresi bir çıkış parametresiyse; aksi takdirde , false
.
Örnekler
Aşağıdaki örnekte , ParameterAttributes.Outve ParameterAttributes.Optional öznitelikleri için yöntem parametrelerinin nasıl test edilenleri ParameterAttributes.Ingösterilmektedir.
Örnek, aşağıdakileri sağlayan bir DefineMethod
yöntem içerir:
Bir tür içeren dinamik bir
MyType
derleme oluşturur.öğesine
MyType
birMyMethod
yöntem ekler.MyMethod
üç parametreye sahiptir. İlk parametre ile ParameterAttributes.Intanımlanır, ikinci ParameterAttributes.Outve ile üçüncü parametre ile ParameterAttributes.Optionaltanımlanır.Türü tamamlamak için çağrılar TypeBuilder.CreateType .
yürütüldikten DefineMethod
sonra örnek, dinamik derlemeyi bulana kadar yüklü olan derlemeleri arar. Derlemeden yüklenirMyType
, yöntemi için MyMethod
bir MethodInfo nesnesi alır ve parametreleri inceler. Örnekte, parametrelerle ilgili bilgileri görüntülemek için , IsOutve IsOptional özellikleri kullanılırIsIn.
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::InteropServices;
public ref class parminfo
{
public:
static void mymethod( int int1m, [Out]interior_ptr<String^> str2m, interior_ptr<String^> str3m )
{
*str2m = "in mymethod";
}
};
int main()
{
Console::WriteLine( "\nReflection.Parameterinfo" );
//Get the ParameterInfo parameter of a function.
//Get the type.
Type^ Mytype = Type::GetType( "parminfo" );
//Get and display the method.
MethodBase^ Mymethodbase = Mytype->GetMethod( "mymethod" );
Console::Write( "\nMymethodbase = {0}", Mymethodbase );
//Get the ParameterInfo array.
array<ParameterInfo^>^Myarray = Mymethodbase->GetParameters();
//Get and display the IsOut of each parameter.
System::Collections::IEnumerator^ enum0 = Myarray->GetEnumerator();
while ( enum0->MoveNext() )
{
ParameterInfo^ Myparam = safe_cast<ParameterInfo^>(enum0->Current);
Console::Write( "\nFor parameter # {0}, the IsOut is - {1}", Myparam->Position, Myparam->IsOut );
}
return 0;
}
/*
This code produces the following output:
Reflection.ParameterInfo
Mymethodbase = Void mymethod (Int32, System.String ByRef, System.String ByRef)
For parameter # 0, the IsOut is - False
For parameter # 1, the IsOut is - True
For parameter # 2, the IsOut is - False
*/
using System;
using System.Reflection;
class parminfo
{
public static void mymethod (
int int1m, out string str2m, ref string str3m)
{
str2m = "in mymethod";
}
public static int Main(string[] args)
{
Console.WriteLine("\nReflection.Parameterinfo");
//Get the ParameterInfo parameter of a function.
//Get the type.
Type Mytype = Type.GetType("parminfo");
//Get and display the method.
MethodBase Mymethodbase = Mytype.GetMethod("mymethod");
Console.Write("\nMymethodbase = " + Mymethodbase);
//Get the ParameterInfo array.
ParameterInfo[] Myarray = Mymethodbase.GetParameters();
//Get and display the IsOut of each parameter.
foreach (ParameterInfo Myparam in Myarray)
{
Console.Write ("\nFor parameter # " + Myparam.Position
+ ", the IsOut is - " + Myparam.IsOut );
}
return 0;
}
}
/*
This code produces the following output:
Reflection.ParameterInfo
Mymethodbase = Void mymethod (int, System.String ByRef, System.String ByRef)
For parameter # 0, the IsOut is - False
For parameter # 1, the IsOut is - True
For parameter # 2, the IsOut is - False
*/
Imports System.Reflection
Class parminfo
Public Shared Sub mymethod(int1m As Integer, ByRef str2m As String, _
ByRef str3m As String)
str2m = "in mymethod"
End Sub
Public Shared Function Main() As Integer
Console.WriteLine(ControlChars.CrLf + "Reflection.Parameterinfo")
'Get the ParameterInfo parameter of a function.
'Get the type.
Dim Mytype As Type = Type.GetType("parminfo")
'Get and display the method.
Dim Mymethodbase As MethodBase = Mytype.GetMethod("mymethod")
Console.Write(ControlChars.CrLf + "Mymethodbase = " _
+ Mymethodbase.ToString())
'Get the ParameterInfo array.
Dim Myarray As ParameterInfo() = Mymethodbase.GetParameters()
'Get and display the IsOut of each parameter.
Dim Myparam As ParameterInfo
For Each Myparam In Myarray
Console.Write(ControlChars.CrLf _
+ "For parameter # " + Myparam.Position.ToString() _
+ ", the IsOut is - " + Myparam.IsOut.ToString())
Next Myparam
Return 0
End Function
End Class
' This code produces the following output:
'
' Reflection.ParameterInfo
'
' Mymethodbase = Void mymethod (Int32, System.String ByRef, System.String ByRef)
' For parameter # 0, the IsOut is - False
' For parameter # 1, the IsOut is - True
' For parameter # 2, the IsOut is - False
Açıklamalar
Bu yöntem isteğe bağlı bir meta veri bayrağına bağlıdır. Bu bayrak derleyiciler tarafından eklenebilir, ancak derleyiciler bunu yapmak zorunda değildir.
Bu yöntem numaralandırıcı bayrağını Out
ParameterAttributes
kullanır.
Diziyi ParameterInfo almak için önce yöntemini veya oluşturucuyu alın ve ardından çağrısı yapın MethodBase.GetParameters.