webForumDet fria alternativet

Option Strict problem...

.NET

1 svar · 221 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Frågan#1

vad betyder

VS2008 skrev:

Option Strict On does not allow narrowing in implicit type conversions between method 'Protected Sub GetScore(sender As Object, e As System.Web.UI.WebControls.CommandEventArgs)' and delegate 'Delegate Sub EventHandler(sender As Object, e As System.EventArgs)'.

Vad är det som blir galet?

Medlem sedan jan. 20022 440 inlägg
#2

Det hela vore väldigt kul att lära sig. Jag kan VB hyffsat väl men tänkte försöka lära mig att programmera mer "rätt". Då kanske inte övergången till ett vettigare språk c++, c# eller så blir så svårt senare.

Har förstått att VB är ett väldigt "löst" programmeringsspråk som mer eller mindre rättar till programmerarens misstag, så får det givetvis inte vara så om någon kan tänka sig varför jag inte kan ha följande

'ASPX sidan
<asp:LinkButton ID="lbtnGetResult" runat="server" OnClick="GetScore" CommandArgument='<%#Eval("SmID")%>'>Resultat</asp:LinkButton>

'EN RUTIN SOM ANROPAR EN RUTIN I KLASSEN (Så jag inte behöver ha hela sub'en på två ställen)
Protected Sub myGetResult(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs)
	wbTools.GetResult(Convert.ToInt32(e.CommandArgument))
End Sub

'SJÄLVA KODEN SOM HÄMTAR I DATABASEN OCH SKRIVER TILL BROWSERN
Shared Sub GetResult(ByVal myID As Integer)

	Dim connect As String = wbTools.myCon
	Dim objConn As New OleDbConnection(connect)

	Dim myName As String
	Dim mySize As Integer
	Dim myFile As Byte()

	Dim cmd1 As OleDbCommand = objConn.CreateCommand()
	Dim p1 As New OleDbParameter()

	cmd1.CommandText = "SELECT FNamn, FStor, FBlob FROM tblSpelprogram where SmId=?"
	cmd1.Parameters.Add(p1)
	p1.Value = myID

	objConn.Open()
	Dim objReader As OleDbDataReader = cmd1.ExecuteReader(CommandBehavior.SingleRow)

	While objReader.Read()
		myName = objReader("FNamn")
		mySize = objReader("FStor")
		myFile = objReader("FBlob")
		objReader.Close()
		objConn.Close()

		With HttpContext.Current.Response
			.ContentType = "text/html"
			.AddHeader("Content-Disposition", "filename=" & Trim(myName))
			.AddHeader("Content-Length", mySize)
			.BinaryWrite(myFile)
			.Flush()
		End With
	End While

End Sub

Såhär kan man tydligen inte göra men jag skulle vilja veta varför, hur skulle någon som kodar C# behöva bära sig åt?

250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)