Sdílet prostřednictvím


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)

Další zdroje

Spolupráce s nespravovaným kódem.