webForumDet fria alternativet

Problem

2 svar · 190 visningar · startad av Jon

JonMedlem sedan juli 20011 126 inlägg
#1

Försöker översätta ett exemoel från VB till C#
Får error på de feta partierna. Det beror säkert på något litet idiotiskt som jag inte ser...

public class ChartItem
{
      // Default Values
      private const float dPrimaryValue = 0.0F;
      private const float dAltValue = 0.0F;
      
      // Chart data fields - All Charts
      private float mPrimaryValue = dPrimaryValue;
      private float mAltValue = dAltValue;

      internal class ChartConverter : TypeConverter
     {
                    public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destType)
	    {
	            // We want to create an InstanceDescriptor
	           if(destType == typeof(InstanceDescriptor))
	           {
		 ChartItem mChart = (ChartItem)value;

		if(mChart.mPrimaryValue.CompareTo([B]mChart.dPrimaryValue[/B]) != 0.0 ||mChart.mAltValue.CompareTo([B]mChart.dAltValue[/B]) != 0.0)
                                 {
                                              // bla bla bla
                                  }
                     }
      }

}

Felmeddelande:

C:\projekt\Charts\ChartItem.cs(102): Static member 'jon.Web.Utils.ChartItem.dPrimaryValue' cannot be accessed with an instance reference; qualify it with a type name instead

C:\projekt\Charts\ChartItem.cs(102): The type or namespace name 'mChart' could not be found (are you missing a using directive or an assembly reference?)

juventus1Medlem sedan dec. 2000401 inlägg
#2

Det första felet beror på att du försöker anropa metoden dPrimaryValue via en instans av ChartItem. Men det får du inte göra eftersom dPrimaryValue tydligen är deklarerad som static. Byt alltså det feta mot ChartItem.dPrimaryValue så skall det fungera bättre.

JonMedlem sedan juli 20011 126 inlägg
#3

ja!

Såklart det är så. (sa ju att det var något litet idiotiskt)

Varför fungerar det annorlunda i VB.NET tro?

För övrigt så kan jag meddela att det blir typ 20% mindre kod i c# än i vb.net :)

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb