CA1406: Vyhnout Int64 argumenty pro klienty Visual Basic 6
Název_typu |
AvoidInt64ArgumentsForVB6Clients |
CheckId |
CA1406 |
Kategorie |
Microsoft.interoperability |
Změnit rozdělení |
Rozdělení |
Příčina
Typ, který je výslovně označen jako viditelný na modelu COM (Component Object) člen prohlašuje, že trvá System.Int64 argument.
Popis pravidla
Visual Basic 6 COM klienti nemají přístup k 64bitové celá čísla.
Standardně jsou viditelné pro COM: sestavení, veřejné typy, členy veřejné instance ve veřejné typy a všechny členy veřejné hodnoty typů.Však sníží o falešný poplach, toto pravidlo vyžaduje viditelnost COM typu výslovně uvedeny; musí být označeny obsahující sestavení System.Runtime.InteropServices.ComVisibleAttribute nastavena na false a typ musí být označeno ComVisibleAttribute nastavena na true.
Jak opravit porušení
Porušení tohoto pravidla pro parametr, jehož hodnotu lze vždy vyjádřit integrál 32bitové opravíte změnit parametr typu System.Int32.Pokud hodnota parametru může být větší, než může být vyjádřen jako 32bitová integrál, změňte parametr typu System.Decimal.Všimněte si, že obě System.Single a System.Double ztrátu přesnosti v horní oblasti Int64 datového typu.Pokud člen není určena pro viditelný na COM, označte jej s ComVisibleAttribute nastavena na false.
Při potlačení upozornění
Je bezpečné potlačí upozornění od tohoto pravidla, pokud je jisté, že Visual Basic 6 COM klientů není přístup typu.
Příklad
Následující příklad ukazuje typ, který porušuje pravidlo.
Imports System
Imports System.Runtime.InteropServices
<Assembly: ComVisibleAttribute(False)>
Namespace InteroperabilityLibrary
<ComVisibleAttribute(True)> _
Public Class SomeClass
Public Sub LongArgument(argument As Long)
End Sub
End Class
End Namespace
using System;
using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
namespace InteroperabilityLibrary
{
[ComVisible(true)]
public class SomeClass
{
public void LongArgument(long argument) {}
}
}
Souvisejících pravidel
CA1413: Nepoužívejte neveřejné pole zobrazena hodnota typů COM
CA1407: Vyhnout se statickým členům v viditelné typy modelu COM
CA1017: Značka sestav s ComVisibleAttribute
Viz také
Referenční dokumentace
Datový typ Long (Visual Basic)