C# 一个类如何得到自己对象的引用?

山水蒙蒙 2019-05-30 10:13:11
问题好下:
用几个button做曲线锚点,每个点只能在该点前后两点之间移动,所以要动态更新每个锚点的可移动范围。
现在继承标准button自己定义一个类作为锚点,想定义静态数据来存储已创建的对象的引用,另写一个静态方法来设置每个锚点对象的可移动范围。
...全文
726 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
山水蒙蒙 2019-06-06
  • 打赏
  • 举报
回复
引用 13 楼 qq14923349 的回复:
[quote=引用 12 楼 您对于我——亦师亦友 的回复:] [quote=引用 11 楼 qq14923349 的回复:] 反射reflection
我也不知道我这样弄是不是反射。类似这样的 foreach (var item in contain.Controls) { if (item.GetType() == typeof(Anthor)) { anthorList.Add(item as Anthor); } } anthorList.OrderBy(a => a.ID);[/quote] yes typeof isreflection [/quote] yes yes 感谢大神帮我印证!
山水蒙蒙 2019-06-05
  • 打赏
  • 举报
回复
引用 11 楼 qq14923349 的回复:
反射reflection
我也不知道我这样弄是不是反射。类似这样的 foreach (var item in contain.Controls) { if (item.GetType() == typeof(Anthor)) { anthorList.Add(item as Anthor); } } anthorList.OrderBy(a => a.ID);
qq14923349 2019-06-05
  • 打赏
  • 举报
回复
反射reflection
山水蒙蒙 2019-06-05
  • 打赏
  • 举报
回复
我最后是这样解决的,在将锚点对象添加到panel时,得到了锚点的parent,在锚点对象中的鼠标移动处理函数中通过这个parent找到其他的锚点。同时,每个锚点都有一个“专属ID”,找到所有锚点,加入List,然后按照ID排序,这样就搞定了。再次感谢各位。
山水蒙蒙 2019-06-05
  • 打赏
  • 举报
回复
十分感谢各位大佬们的帮助,经各位指点后,受益良多。
qq14923349 2019-06-05
  • 打赏
  • 举报
回复
引用 12 楼 您对于我——亦师亦友 的回复:
[quote=引用 11 楼 qq14923349 的回复:]
反射reflection

我也不知道我这样弄是不是反射。类似这样的
foreach (var item in contain.Controls)
{
if (item.GetType() == typeof(Anthor))
{
anthorList.Add(item as Anthor);
}
}
anthorList.OrderBy(a => a.ID);[/quote]
yes typeof isreflection
正怒月神 2019-05-30
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
得不到,但是你可以定义两个成员,一个保存自己的前驱,一个保存自己的后继 class MyPoint { public MyPoint pre; public MyPoint next; ... }
对,感觉有点像链表
正怒月神 2019-05-30
  • 打赏
  • 举报
回复
听起来有点类似于 linkedList 就是有一个指向前后的引用位置。
wanghui0380 2019-05-30
  • 打赏
  • 举报
回复
微软也在改进,Segment,Span,最近貌似还出了一个东西Pipelines,看得到跟python这类东西还是学了不少数组分割的东西
angel6709 2019-05-30
  • 打赏
  • 举报
回复
this .
wanghui0380 2019-05-30
  • 打赏
  • 举报
回复
不这样做,正常情况下,我们把 数据序列放过去,然后把这个点的Position赋值进去 然后用Segment做一个自己独立的分割,所有操作只对Segment里面的数据
stherix 2019-05-30
  • 打赏
  • 举报
回复
不需要设置 "每个锚点对象的可移动范围" 吧 你的锚点应该是存在List或者类似的数据结构中 那么可以很容易取到它的前后锚点(或者已经是第一个或者最后一个)的引用 这样移动的时候,直接就可以判断是否越过允许范围了
threenewbee 2019-05-30
  • 打赏
  • 举报
回复
得不到,但是你可以定义两个成员,一个保存自己的前驱,一个保存自己的后继 class MyPoint { public MyPoint pre; public MyPoint next; ... }
喂大的程序员 2019-05-30
  • 打赏
  • 举报
回复
没看懂问题,卧槽了

110,539

社区成员

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

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

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