---
title: "case else funkar inte"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/110532-case-else-funkar-inte"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "airwolf"
published: "2004-09-01T17:34:30.000Z"
updated: "2004-09-01T18:58:44.000Z"
replies: 11
views: 379
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/110532-case-else-funkar-inte"
---

# case else funkar inte

## #1 — airwolf, 2004-09-01T17:34Z

Jag har en kod som läser exif ur en bild.

Men ifall den inte hittar nåt ska case else spotta ur sig ett värde
det gör den inte av nån anledning.

Måste det finnas ett värde för att case else ska fungera?

Se nedanstående kod.

Ifall värdet är 7 då skickar den ut case else, men om värdet
är helt tomt skippar den case else.

```
             Case 37383 'Metering Mode
				strTemp = System.BitConverter.ToUInt16(objProp.Value, 0).ToString
				
				Select Case strTemp
					Case "1"
						strMeteringMode = "Average"
					Case "2"
						strMeteringMode = "Center Weighted Ave"
					Case "3"
						strMeteringMode = "Spot"
					Case "4"
						strMeteringMode = "Multi-Spot"
					Case "5"
						strMeteringMode = "Pattern"
					Case "6"
						strMeteringMode = "Partial"
					Case Else
						strMeteringMode = "Other"
				End Select
```

Permalänk: https://www.webforum.nu/p/110532

## #2 — nitro2k01, 2004-09-01T17:39Z

```
 
	Case 37383 'Metering Mode
		strTemp = System.BitConverter.ToUInt16(objProp.Value, 0).ToString

		if (strTemp)

			Select Case strTemp
				Case "1"
					strMeteringMode = "Average"
				Case "2"
					strMeteringMode = "Center Weighted Ave"
				Case "3"
					strMeteringMode = "Spot"
				Case "4"
					strMeteringMode = "Multi-Spot"
				Case "5"
					strMeteringMode = "Pattern"
				Case "6"
				strMeteringMode = "Partial"
				Case Else
					strMeteringMode = "Other"
			End Select
		else
			strMeteringMode = "(None)"
		endif
```

 
Kanske?

Permalänk: https://www.webforum.nu/p/1425564

## #3 — airwolf, 2004-09-01T17:47Z

Samma sak, ingenting skrivs ut

Permalänk: https://www.webforum.nu/p/1425568

## #4 — nitro2k01, 2004-09-01T18:00Z

Jag tror följande är ditt problem: Bilden du försöker kolla har ingen meteringMode alls, alltså reagerar inte raden Case 37383, eftersom det inte alls finns något värde som har index 37383.
Detta kan du lätt kolla genom att lägga till msgbox "" direkt efter Case 37383
Visas ingen msgbox, så körs inte heller koden efteråt, och då är det inte konstigt att strMeteringMode inte får något värde.

Permalänk: https://www.webforum.nu/p/1425588

## #5 — airwolf, 2004-09-01T18:10Z

Hur kommer man förbi detta?

Permalänk: https://www.webforum.nu/p/1425597

## #6 — airwolf, 2004-09-01T18:17Z

Jag presenterar i form
\<%=strMeteringMode%\>

Man kanske skulle kunna sätta nån regel där ifall den är ingenting, skriv detta.

Nåt förslag?

Permalänk: https://www.webforum.nu/p/1425600

## #7 — nitro2k01, 2004-09-01T18:23Z

Jagb tycker du ska sätta strMeteringMode (Och eventuella andra variabler som kan drabbas) till ett default-värde innan den yttre select'en. 

```
 
strMeteringMode="(none)"
select case id_nånting
...
	Case 37383 'Metering Mode
		strTemp = System.BitConverter.ToUInt16(objProp.Value, 0).ToString

		if (strTemp)

			Select Case strTemp
				Case "1"
					strMeteringMode = "Average"
				Case "2"
					strMeteringMode = "Center Weighted Ave"
				Case "3"
					strMeteringMode = "Spot"
				Case "4"
					strMeteringMode = "Multi-Spot"
				Case "5"
					strMeteringMode = "Pattern"
				Case "6"
				strMeteringMode = "Partial"
				Case Else
					strMeteringMode = "Other"
			End Select
		else
			strMeteringMode = "(None)"
		endif
...
```

Permalänk: https://www.webforum.nu/p/1425603

## #8 — airwolf, 2004-09-01T18:30Z

Det gjorde saken biff!

```
            strMeteringMode="Unknown"    
            Case 37383 'Metering Mode
				strTemp = System.BitConverter.ToUInt16(objProp.Value, 0).ToString
				
				Select Case strTemp
					Case "1"
						strMeteringMode = "Average"
					Case "2"
						strMeteringMode = "Center Weighted Ave"
					Case "3"
						strMeteringMode = "Spot"
					Case "4"
						strMeteringMode = "Multi-Spot"
					Case "5"
						strMeteringMode = "Pattern"
					Case "6"
						strMeteringMode = "Partial"
					Case Else
						strMeteringMode = "Other"
				End Select
```

Permalänk: https://www.webforum.nu/p/1425618

## #9 — nitro2k01, 2004-09-01T18:35Z

Kommentar...

Vet inte om du bara har klippt ut delar av källan, men att ha den direkt innan case på det viset som det ser ut nu är riskabelt, eftersom det förutsätter att case'n innan körs. Bättre är att ha det innan select istället.

Permalänk: https://www.webforum.nu/p/1425620

## #10 — airwolf, 2004-09-01T18:55Z

Du menar 

```
            Case 37383 'Metering Mode
				strTemp = System.BitConverter.ToUInt16(objProp.Value, 0).ToString
            strMeteringMode="Unknown"  				
				Select Case strTemp
					Case "1"
						strMeteringMode = "Average"
					Case "2"
						strMeteringMode = "Center Weighted Ave"
					Case "3"
						strMeteringMode = "Spot"
					Case "4"
						strMeteringMode = "Multi-Spot"
					Case "5"
						strMeteringMode = "Pattern"
					Case "6"
						strMeteringMode = "Partial"
					Case Else
						strMeteringMode = "Other"
				End Select
```

 

Då skriver den inte ut nånting

Permalänk: https://www.webforum.nu/p/1425642

## #11 — nitro2k01, 2004-09-01T18:56Z

Nej! Innan den select case som  "Case 37383" tillhör.

Permalänk: https://www.webforum.nu/p/1425644

## #12 — airwolf, 2004-09-01T18:58Z

Ja det har du ju rätt i!

nu är det ordnat, tack!

Permalänk: https://www.webforum.nu/p/1425647

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/110532-case-else-funkar-inte
