CA1406: Vyhněte se argumentům Int64 pro klienty jazyka 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á 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í 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 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 Decimal.Všimněte si, že obě Single a 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: Vyhněte se neveřejným polím v hodnotách viditelných modulem COM
CA1407: Vyhněte se statickým členům ve viditelných typech modelu COM
CA1017: Označte sestavení pomocí atributu ComVisibleAttribute
Viz také
Referenční dokumentace
Long – datový typ (Visual Basic)