CodeModel2.AddFunction Yöntem (String, Object, vsCMFunction, Object, Object, vsCMAccess)
Yeni bir işlev kod yapısı oluşturur ve doğru konumda kodu ekler.
Ad alanı: EnvDTE80
Derleme: EnvDTE80 (EnvDTE80.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ı.Bağlı olarak, dosya adı proje dosyasına göreceli ya da mutlak dilidir.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 Sabit özellik get, bir yöntemi ve işlevi olup gibi işlev türünü belirtendiğerleri.
- Type
Tür: System.Object
Gerekli.A vsCMTypeRef verileri gösteren sabit türü işlevi döndürür.Bu bir CodeTypeRef nesnesi, bir vsCMTypeRef sabiti, ya da bir tam tür adı.
- Position
Tür: System.Object
İsteğe Bağlı.Varsayılan = 0.Kod öğesi sonra yeni öğe eklemek.Değer ise, bir CodeElement, sonra yeni öðe eklenir it. hemen sonra
Değeri uzun veri türü, daha sonra ise AddFunction gösterir öğesi sonra ekleme yeni bir öğe.
Koleksiyonları kendi sayısı 1 başladığı için 0 geçirerek yeni öğe koleksiyonu başında yerleştirilmesi gerektiğini belirtir.Değeri-1 öğesinin sonuna yerleştirilmelidir.
- Access
Tür: EnvDTE.vsCMAccess
İsteğe Bağlı.A vsCMAccess sabiti.
Dönüş Değeri
Tür: EnvDTE.CodeFunction
CodeFunction nesnesi
Yüklenen
CodeModel.AddFunction(String, Object, vsCMFunction, Object, Object, vsCMAccess)
Açıklamalar
Aşırı işleci ekleyebilirsiniz (kullanarak vsCMFunctionOperator) gibi aşağıdaki örnek.
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 durumda, açıkça çağrısında (Bu örnekte "someFunction") aþýrý yüklemek istediğiniz işlevin adını belirtmeniz gerekir AddFunction, aşırı operatör kendisini değil. Yukarıdaki kod, örnek olarak kullanarak,
cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...)
işe yaramaz. Bunun yerine kullanmalısınız
cc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)
Sadece Visual C++ çünkü bu yöntemi uygulayan C# Visual Basic, ve J# izin vermez üst düzey işlevleri.
Yerel Visual C++ iki nokta üst üste ayrılmış gerektirir (::) biçimlendirmek, tam tür adı.
Not
Sınıflar, yapılar, işlevleri, öznitelikleri, Temsilciler ve benzeri gibi kod modeli öğeleri değerlerini düzenlemeleri değerlerine bağlı her zaman aynı kalmasını dayanıyordu olamaz, diğer bir deyişle, belirli türde yaptıktan sonra non-deterministik olabilir. Daha fazla bilgi için bkz: kod modeli öğe değerlerini de değiştirebilirsiniz bölüm Kod modeli (@) kullanarak kodu 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üvenilir kod tarafından Kitaplıklar kullanma.
Ayrıca bkz.
Başvuru
Diğer Kaynaklar
Nasıl Yapılır: derlemek ve otomasyon nesne modeli kod örnekleri çalıştırma