'typename1>' türü '<typename2>' türüne< dönüştürülemediğinden, 'ByRef' parametresi '<parametername>' değeri eşleşen bağımsız değişkene geri kopyalanamaz

Bir yordam, çağıran bağımsız değişken türüne geri dönüştürülemeyen bir parametre türüyle bildirilir.

Bir sınıf veya yapı tanımlarken, bu sınıfı veya yapı türünü diğer türlere dönüştürmek için bir veya daha fazla dönüştürme işleci tanımlayabilirsiniz. Bu diğer türleri sınıfınıza veya yapı türünüze geri dönüştürmek için ters dönüştürme işleçleri de tanımlayabilirsiniz. Bir yordam çağrısında sınıfınızı veya yapı türünüzü kullandığınızda, Visual Basic bu dönüştürme işleçlerini kullanarak bağımsız değişkenin türünü ilgili parametresinin türüne dönüştürebilir.

ByRef bağımsız değişkenini geçirirseniz, Visual Basic bazen bağımsız değişken değerini başvuru geçirmek yerine yordamdaki yerel bir değişkene kopyalar. Böyle bir durumda, yordam döndürdüğünde Visual Basic'in yerel değişken değerini çağıran koddaki bağımsız değişkene geri kopyalaması gerekir.

ByRef Bağımsız değişken değeri yordama kopyalanırsa ve bağımsız değişken ve parametre aynı türdeyse, dönüştürme gerekmez. Ancak türler farklıysa Visual Basic'in her iki yönde de dönüştürülmesi gerekir. Türlerden biri sınıfınız veya yapı türünüzse, Visual Basic'in bunu hem diğer türe hem de diğer türden dönüştürmesi gerekir. Bu, dönüştürme işleçlerini her iki yönde de tanımlamanız gerektiği anlamına gelir.

Hata Kimliği: BC33037

Bu hatayı düzeltmek için

  • Mümkünse, yordam parametresiyle aynı türde bir çağırma bağımsız değişkeni kullanın, böylece Visual Basic'in herhangi bir dönüştürme yapması gerekmez.

  • Yordamı parametre türünden farklı bir bağımsız değişken türüyle çağırmanız gerekiyorsa ancak çağıran bağımsız değişkene bir değer döndürmeniz gerekmiyorsa parametresini ByRefyerine ByVal olarak tanımlayın.

  • Çağıran bağımsız değişkenine bir değer döndürmeniz gerekiyorsa, Visual Basic'in çağıran bağımsız değişken türüne geri dönüştürülebilmesi için ters dönüştürme işlecini tanımlayın.

Ayrıca bkz.