Run-time-fel '380' i Visual Basic (och liknande språk) betyder
"Ogiltigt fastighetsvärde." Detta fel uppstår när du försöker tilldela ett värde till en egenskap som inte är giltig för den egenskapen. Lösningen beror helt på * där * felet inträffar och * vad * egenskap är involverad.
Här är en uppdelning av hur man felsöker och fixar det:
1. Identifiera egenskapen och värdet:
* Felmeddelandet: Den mest avgörande informationen är vanligtvis * inom * själva felmeddelandet. Det kan berätta vilket objekt och egendom som orsakar problemet. Var noga med!
* radnummer: Felmeddelandet innehåller vanligtvis ett radnummer i din kod. Detta pekar direkt på den problematiska linjen.
* felsökning: Använd den visuella grundläggande felsökaren (eller motsvarande i din IDE). Ställ in brytpunkter nära det angivna radnumret och gå igenom din kod för att se värdena på variabler strax innan felet inträffar. Kontrollera egenskapens värde vid den punkten.
2. Vanliga orsaker och lösningar:
* Fel datatyp: Du försöker tilldela ett värde på fel datatyp till en egenskap. Till exempel försöker du tilldela en sträng till en numerisk egenskap eller ett nummer utanför det tillåtna intervallet (t.ex. tilldela ett negativt värde till en egenskap som endast accepterar positiva siffror).
* Lösning: Kontrollera egenskapens dokumentation för att bestämma dess förväntade datatyp och intervall. Se till att värdet du tilldelar är av rätt typ och faller inom det acceptabla intervallet. Använd typkonverteringsfunktioner (som `CINT`,` CSTR`, etc.) vid behov.
* Index utanför gränserna: Du försöker komma åt ett element i en matris eller samling som inte finns. Till exempel åtkomst till "MyArray (10)" när "MyArray" bara har 5 element.
* Lösning: Kontrollera att indexet ligger inom det giltiga intervallet (0 till `ubound (myArray)` till exempel). Lägg till kontroller för att förhindra åtkomst till ogiltiga index.
* null Objektreferens: Du försöker komma åt en egenskap hos ett objekt som inte har initialiserats ordentligt eller är "ingenting".
* Lösning: Se till att objektet skapas och tilldelas en giltig referens innan du försöker komma åt egenskaperna. Använd `if` uttalanden för att kontrollera om det inte finns innan du får åtkomst till egenskaper:
`` VB.net
Om MyObject inte är något då
MyObject.MyProperty ="viss värde"
Slut om
`` `
* Ogiltig stränglängd: Vissa egenskaper har längdbegränsningar. Du kanske försöker tilldela en sträng som överskrider den tillåtna längden.
* Lösning: Kontrollera dokumentationen för längdgränser och trunkera eller ändra din sträng i enlighet därmed.
* Felaktigt enumvärde: Om fastigheten förväntar sig ett uppräknat värde kan du kanske leverera en ogiltig enummedlem.
* Lösning: Granska enum -definitionen och se till att du använder en giltig medlem.
* fil I/O -fel: Fastigheten kan relatera till en fil eller sökväg. Kontrollera om filen finns, du har rätt behörigheter, sökvägen är giltig etc.
* Lösning: Använd felhantering (t.ex. `på felupptagning Nästa" - * Använd försiktigt * eller strukturerat undantagshantering "försök ... fånga") för att hantera potentiella filfel graciöst.
3. Exempelsscenario och fix:
Låt oss säga att du får fel 380 på den här raden:
`` VB.net
Textbox1.text =myverylongString
`` `
Och `MyveryLongString 'överskrider den maximala längden som är tillåtet för` Textbox1.text`.
Lösningen skulle vara att antingen trunkera strängen eller använda en mer lämplig kontroll för att hantera lång text. Till exempel:
`` VB.net
Om Len (MyveryLongString)> Textbox1.MaxLength sedan
TextBox1.Text =vänster (MyveryLongString, TextBox1.MaxLength)
Annan
Textbox1.text =myverylongString
Slut om
`` `
Sammanfattningsvis: För att fixa fel 380 måste du noggrant undersöka koden runt radnumret som anges i felmeddelandet, identifiera den inblandade egenskapen och se till att det värde du tilldelar det är giltigt och lämpligt för den egenskapen. Använd felsökaren för att fastställa problemet och kontrollera dina datatyper, intervall och objektreferenser. Kontakta alltid dokumentationen för det specifika objektet och egenskapen du arbetar med.