Sdílet prostřednictvím


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)

Další zdroje

Spolupráce s nespravovaným kódem