Şu anda ben bir bayt dizisi ile bir şeyler yapmaya çalışıyorum hangi bir yöntemi var EĞER bir takip. Bununla birlikte, bu bayt dizisinin uzunluğu, yöntemin bir parametresine bağlıdır. Dizini if-else bloklarından önce ilan etmem gerek, aksi halde değişken kapsam dışı.blok
yöntemin bir örneği, aşağıda verilmiştir: Bir nesnenin örneğine ayarlanmamış nesne başvurusu olamaz, çünkü yöntem yürütürken
private static byte[] messageFormatting(string bodyText, byte packetType)
{
int index = 0;
byte[] messageBody;
if(packetType == 0x03)
{
byte[] RSAEncryptedMessageBody = RSAEncrypt(bodyText);
messageBody = new byte[(RSAEncryptedMessageBody.Length)];
Array.Copy(RSAEncryptedMessageBody, messageBody, RSAEncryptedMessageBody.Length);
}
else
{
messageBody = System.Text.Encoding.ASCII.GetBytes(bodyText);
}
byte[] fullMessage = new byte[(messageBody.Length + 6)];
//do others things
}
Bir durum hata oluyor.
Yukarıdaki byte[] messageBody
numaralı sürümde boş bir başlatma yaptığımda, messageBody = new byte[]
yapamıyorum demek istiyorum. Ancak bu bildirimi kaldırırsam, if-else bloklarının altındaki referanslar kapsam dışıdır. Şifreleme gerçekleşmeden önce messageBody
uzunluğunu bilmiyorum. Herhangi bir tavsiye?
Kodunuz kesik benim için iyi derler. Bu hatanın kaynağını iki kere kontrol etmek isteyebilir. (buna bir dönüş ekledikten sonra). – Wjdavis5
Bazı önerilerinde atın. Örneğin. RSAEncrypt bir boş değer döndürüyor mu? Ayrıca diziyi neden kopyalıyorsunuz? – CSharpie
Wjdavis5 @ O iyi derler ama bunu çalıştırmak için herhangi bir girişimde istisnası "bir nesnenin örneğine ayarlanmadı nesne başvurusu" atar. RSAEncrypt bir bayt dizisi – James