C# 运算符问题

tgzhang 2015-04-11 01:26:38
有二个类:
class A
{
double a;
double b;
//......
}

class B
{
double c;
public A[] ets;


public static implicit operator B[](int i) //有问题
{
return ets[i];
}

}


为了避免B.ets[i].a 这种使用方式,希望用比较简洁的B[i].a 这种方式,在类B中增加了函数
public static implicit operator B[](int i)

但系统总是提示"用户自定义的转换必须是封闭类型,或者从封闭类型转换"。
请问如何解决?

谢谢

...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tgzhang 2015-04-11
  • 打赏
  • 举报
回复
谢谢。 但 我非常想知道 public static implicit operator B[](int i) 这个函数的错误在什么地方? 或者说 这个错误提示“"用户自定义的转换必须是封闭类型,或者从封闭类型转换"”的确切含义是什么?
loveoflife0411 2015-04-11
  • 打赏
  • 举报
回复
1楼正解
john_QQ:2335298917 2015-04-11
  • 打赏
  • 举报
回复
引用 1 楼 Forty2 的回复:
class B
{
    double c;
    public A[] ets;

    public A this[int i]  // 用indexer
    {
        get { return ets[i]; }
    }
}
Forty2 2015-04-11
  • 打赏
  • 举报
回复
class B
{
    double c;
    public A[] ets;

    public A this[int i]  // 用indexer
    {
        get { return ets[i]; }
    }
}

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧