2017-03-25 2 views
0

ich einen Suvat Rechner zu machen versucht bin, und erfordern eine gewisse Form der Art und Weise haben zwei verschiedene Arten von Variablen in einer Variable gespeichert zu haben.Haben zwei Variablentypen

Für diejenigen nicht bewusst Suvat. Suvat-Gleichungen sind eine Sammlung von Gleichungen, die es ermöglichen, jede der fünf Variablen aus nur drei bekannten Variablen zu ermitteln.

Das bedeutet, dass ich eine Variable hält einen Schwimmer haben zu können und einen Nullwert. Gibt es eine Möglichkeit, dies zu tun?

+0

Nullable Types ftw – bradbury9

+2

Mögliche Duplikat [Wie Nullwert zu Nicht-Nullable-Typ Variable in C# zuweisen?] (http://stackoverflow.com/ Fragen/15491889/wie-Assign-null-Wert-zu-nicht-nullable-Typ-variable-in-c) – BACON

Antwort

3

für eine Variable Um sowohl einen Schwimmer oder null zu halten, müssen Sie Nullable Types verwenden. Zum Beispiel können Sie "float" verwenden als Typ:

float? myFloat = null; 

Wenn Sie ein Doppel- oder null zu halten, müssen die Nullable-Doppel-Typ:

double? myDouble = null; 

usw.

+0

auch als „[Nullable types] bekannt (https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx) ". –

+0

Leider ist das genau das, was ich brauche; Allerdings kann ich diesen Typ nicht in ein Double konvertieren. Jede Umwandlung Ich versuche, erlaubt mir nicht, Math.sqrt (variabel) – TheAndOnlyFin

+0

@TheAndOnlyFin zu verwenden, nach dem Test sicher sein myFloat nicht gleich null, versuchen: Math.Sqrt ((double) myFloat); – BoltBait

0

Sie einfach eine Klasse erstellen können, die die Typen enthält du brauchst. Zum Beispiel, wenn Sie einen Schwimmer und einen String benötigen (sagte man null, aber das ist kein Typ, also verwende ich string, die null sein kann):

class SomeClassName 
{ 
    public float FloatValue {get; set;} 
    public string StringValue {get; set;} 
} 

Jetzt können Sie erstellen eine Variable Typ SomeClassName und weisen sie sowohl einen Schwimmer und einen String:

SomeClassName suvat = new SomeClassName(); 
suvat.FloatValue = 1.2; 
suvat.StringValue = null; 
Verwandte Themen