首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

编译异常,不知道是强类型有关问题还是指针有关问题

2012-01-15 
编译错误,不知道是强类型问题还是指针问题错误信息:运算符“.”无法应用于“Color32*”类型的操作数相关代码:i

编译错误,不知道是强类型问题还是指针问题
错误信息:运算符“.”无法应用于“Color32*”类型的操作数

相关代码:
  internal unsafe void AddColor(Color32 *pixel)
  {
  if (this._prefixColor == pixel.ARGB)
  {
  if (this._prefixNode == null)
  {
  this._prefixColor = pixel.ARGB;
  this._rootNode.AddColor(pixel, 0, this);
  }
  else
  {
  this._prefixNode.Increment(pixel);
  }
  }
  else
  {
  this._prefixColor = pixel.ARGB;
  this._rootNode.AddColor(pixel, 0, this);
  }
  }


[StructLayout(LayoutKind.Explicit)]
  internal struct Color32
  {
  [FieldOffset(3)]
  internal byte Alpha;
  [FieldOffset(0)]
  internal int ARGB;
  [FieldOffset(0)]
  internal byte Blue;
  [FieldOffset(1)]
  internal byte Green;
  [FieldOffset(2)]
  internal byte Red;

  internal Color32(int c)
  {
  this.Alpha = 0;
  this.Red = 0;
  this.Green = 0;
  this.Blue = 0;
  this.ARGB = c;
  }

  internal Color32(byte a, byte r, byte g, byte b)
  {
  this.ARGB = 0;
  this.Alpha = a;
  this.Red = r;
  this.Green = g;
  this.Blue = b;
  }

  internal System.Drawing.Color Color
  {
  get
  {
  return System.Drawing.Color.FromArgb(this.ARGB);
  }
  }
  }

[解决办法]
internal unsafe void AddColor(Color32 *pixel) 

if (this._prefixColor == pixel.ARGB) 

if (this._prefixNode == null) 

this._prefixColor = pixel.ARGB; 
this._rootNode.AddColor(pixel, 0, this); 

else 

this._prefixNode.Increment(pixel); 


else 

this._prefixColor = pixel.ARGB; 
this._rootNode.AddColor(pixel, 0, this); 




改成
internal unsafe void AddColor(Color32 *pixel) 

if (this._prefixColor == pixel->ARGB) 

if (this._prefixNode == null) 

this._prefixColor = pixel->ARGB; 
this._rootNode.AddColor(pixel, 0, this); 

else 

this._prefixNode.Increment(pixel); 


else 

this._prefixColor = pixel->ARGB; 
this._rootNode.AddColor(pixel, 0, this); 



------解决方案--------------------


用指针来调用成员用的是->吧
你用.当然不行了
[解决办法]

探讨
用指针来调用成员用的是->吧
你用.当然不行了

热点排行