关于C#中对象实例化的问题 编译时没有报错

脑黑洞 2017-07-21 09:07:49

哪位大神帮忙给这个代码解释一下 或者化简下 这个真的太长了 搞不懂,另,本人刚接触C#,没什么基础。往大神解释清楚点,非常感谢。
...全文
273 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2017-07-24
  • 打赏
  • 举报
回复
其实你只要知道 as 这个关键字,基本就明白了。 as将一个对象强制转换。 每个括号内的 xxx as xxx 都是一个强转。 也就是 ((xxx as xxx).方法得到的对象) as xxx 这样的 ((xxx as xxx).方法得到的对象) 也就是 as的前半部分。
脑黑洞 2017-07-22
  • 打赏
  • 举报
回复
先谢谢了 我看看帮助文档 试试吧
  • 打赏
  • 举报
回复
另外,“编译时没有报错”其实这有时候是一个欺骗自己的结果。 我们编程开发时要尽量强类型的、靠谱地去编程。只有实在不得已的时候才用 as、强制类型转换、dynamic 之类的写法。抽象会让你的程序无法借助编译器而检查出设计错误,甚至程序会在运行几分钟、几千遍之后才因为某个对象实例的类型错误而在用户面前丢人地崩溃掉。 所以,这种“一大堆as”的写法只有在我们万不得已的时候才会去写。这就更加要求你实现对业务领域的模型的继承性、人是比较清楚,信心比较足,才能用这种类库和架构去编程。
  • 打赏
  • 举报
回复
a.属性1().方法1().方法2() 不过是把这样的三个代码连缀了书写而已。关键是与此业务领域模型相关的数据结构、而不是这个形式。当你没有深入一点的结构了解的时候,纯粹抄人家形式,其实放到任何人身上都会是比较虚假的理解方法。
  • 打赏
  • 举报
回复
把相关的6、7个对象类型的继承树结构画出来,或者找出它的文档。 如果你不知道自己去找出对象类型关联图,不知道找出父子类型关系,那么就等于说是只见水泥不见建筑,看到了真身你也不认识。
exception92 2017-07-21
  • 打赏
  • 举报
回复
上边的scalex是属性。你还是先买本书学学基础吧
exception92 2017-07-21
  • 打赏
  • 举报
回复
引用 2 楼 weixin_39375385的回复:
额 能不能详细点。对象是谁
点号前面的是对象,带括号的是方法
脑黑洞 2017-07-21
  • 打赏
  • 举报
回复
额 能不能详细点。对象是谁
exception92 2017-07-21
  • 打赏
  • 举报
回复
对象.对象.方法名称

110,534

社区成员

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

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

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