CodeModel.AddFunction Yöntem
Yeni bir işlev kod yapısı oluşturur ve doğru konumda kodu ekler.
Ad alanı: EnvDTE
Derleme: EnvDTE (EnvDTE.dll içinde)
Sözdizimi
'Bildirim
Function AddFunction ( _
Name As String, _
Location As Object, _
Kind As vsCMFunction, _
Type As Object, _
Position As Object, _
Access As vsCMAccess _
) As CodeFunction
CodeFunction AddFunction(
string Name,
Object Location,
vsCMFunction Kind,
Object Type,
Object Position,
vsCMAccess Access
)
CodeFunction^ AddFunction(
String^ Name,
Object^ Location,
vsCMFunction Kind,
Object^ Type,
Object^ Position,
vsCMAccess Access
)
abstract AddFunction :
Name:string *
Location:Object *
Kind:vsCMFunction *
Type:Object *
Position:Object *
Access:vsCMAccess -> CodeFunction
function AddFunction(
Name : String,
Location : Object,
Kind : vsCMFunction,
Type : Object,
Position : Object,
Access : vsCMAccess
) : CodeFunction
Parametreler
- Name
Tür: System.String
Gerekli.Yeni işlev adı.
- Location
Tür: System.Object
Gerekli.Yeni işlev tanımı için yol ve dosya adı.Diline bağlı olarak göreceli ya da mutlak proje dosyası için dosya adı.Zaten proje öğesi değilse dosya projeye eklenir.Dosyayı açamıyor oluşturulabilir ve projeye, daha sonra eklenen, AddFunction başarısız.
- Kind
Tür: EnvDTE.vsCMFunction
Gerekli.vsCMFunction İşlevi bir özelliğin get ya da bir yöntem olup olmadığı gibi işlev türünü belirten bir sabit.
- Type
Tür: System.Object
Gerekli.A vsCMTypeRef işlevi sayı veri türünü belirten bir sabit.Bu bir CodeTypeRef nesnesi, bir vsCMTypeRef sabit veya tam tür adı.
- Position
Tür: System.Object
İsteğe Bağlı.Varsayılan = 0.Kod öğesi yeni öğe eklemek önce beklenecek.Değer ise, bir CodeElement, sonra da yeni öğe hemen bundan sonra eklenir.
Değeri daha sonra bir Long veri türü ise AddFunction sonra yeni öğe Ekle öğesini belirtir.
0 Geçirerek koleksiyonları kendi sayısı 1'den başladığı için yeni öğe koleksiyonu başında yerleştirilmesi gerektiğini gösterir.Bir değeri öğesinin sonuna yerleştirilmesi gereken-1 anlamına gelir.
- Access
Tür: EnvDTE.vsCMAccess
İsteğe Bağlı.A vsCMAccess sabit.
Dönüş Değeri
Tür: EnvDTE.CodeFunction
CodeFunction nesnesi
Notlar
Aşağıdaki kod, aşırı işlecini kullanarak ekler vsCMFunction.vsCMFunctionOperator.
Sub testAddOverloadOperatorCPP()
Dim fcm As FileCodeModel = _
DTE.ActiveDocument.ProjectItem.FileCodeModel
Dim cc As CodeClass = fcm.CodeElements.Item("someClassName")
cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator, _
vsCMTypeRef.vsCMTypeRefInt)
'cc.AddFunction("someFunction +", _
vsCMFunction.vsCMFunctionFunction, vsCMTypeRef.vsCMTypeRefInt)
End Sub
Bu örnekte çağrısında (Bu durumda, "someFunction") aþýrý yüklemek istediğiniz işlevin adını açıkça belirtmelisiniz AddFunction, aşırı işleci kendisi değil.
Örnek olarak, yukarıdaki kodu kullanarak cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...) çalışmıyor. Bunun yerine kullanmanız gerekircc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)
Yalnızca Visual c++ uygulayan AddFunction, C#, Visual Basic ve J# üst düzey işlevler izin vermiyor çünkü.
Yerel doğal Visual c++ gerektiren iki nokta üst üste ayrılmış (::), tam olarak nitelenmiş tür adları biçimlendirin.
Not
Kod modeli öğeler sınıflar, yapılar, İşlevler, öznitelikleri, Temsilciler ve diğerleri gibi değerleri düzenlemeleri değerlerine bağlı her zaman aynı kalacak şekilde dayanıyordu olamaz, diğer bir deyişle, belirli türde yaptıktan sonra non-deterministik olabilir.Daha fazla bilgi için kod modeli öğe değerlerini de değiştirebilirsiniz bölümüne bakın Kod modeli (Visual Basic) kullanarak kod keşfetme.
Örnekler
Sub AddFunctionExample(ByVal dte As DTE2)
' Before running this example, open a code document from a project.
Try
Dim projItem As ProjectItem = dte.ActiveDocument.ProjectItem
Dim cm As CodeModel = projItem.ContainingProject.CodeModel
' Create a new function.
cm.AddFunction("TestFunction", projItem.Name, _
vsCMFunction.vsCMFunctionFunction, _
vsCMTypeRef.vsCMTypeRefInt)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
public void AddFunctionExample(DTE2 dte)
{
// Before running this example, open a code document from
// a project.
try
{
ProjectItem projItem = dte.ActiveDocument.ProjectItem;
CodeModel cm = projItem.ContainingProject.CodeModel;
// Create a new function.
cm.AddFunction("TestFunction", projItem.Name, _
vsCMFunction.vsCMFunctionFunction, _
vsCMTypeRef.vsCMTypeRefInt, -1, _
vsCMAccess.vsCMAccessDefault);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
.NET Framework Güvenliği
- Anında arayanlar için tam güven. Bu üye kısmen güvenilen kodla kullanılamaz. Daha fazla bilgi için bkz. Kısmen güvenilen kod kitaplıklarını kullanma.
Ayrıca bkz.
Başvuru
Diğer Kaynaklar
Nasıl yapılır: derlemek ve Otomasyon nesne modeli kod örneklerini çalıştırmak