首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >System.Convert如何适应面向对象的约定?

System.Convert如何适应面向对象的约定?
EN

Stack Overflow用户
提问于 2014-03-04 17:28:22
回答 3查看 666关注 0票数 17

类不是应该在对象之后调用而不是在动作之后调用吗?它并不符合我所学到的面向对象理论。

一种想法是,也许因为Convert只包含静态方法,所以根本不应该创建它的实例,这可能会使它成为一个可接受的异常。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-04 17:43:05

在C#中,您不能在类或结构之外创建方法。因此,当您想要创建实用程序方法时,最好将它们存储在静态类中。

所以我想说,静态类没有面向对象的东西。

票数 19
EN

Stack Overflow用户

发布于 2014-03-04 17:41:36

你的想法是正确的。Convert是一个静态实用程序类,只有一个目的-在不同类型之间进行转换。

它只有方法(动词),它们都是转换-所以,为了可读性,最好给类本身提供通用动词的名称,而不是在每个方法中重复它:

代码语言:javascript
复制
int i = Convert.ToInt32(value);
float f = Convet.ToSingle(value);

比以下代码更流利、更易读:

代码语言:javascript
复制
int i = Conversions.ConvertToInt32(value);
float f = Conversions.ConvertToSingle(value);
票数 5
EN

Stack Overflow用户

发布于 2014-03-04 17:33:15

我个人的观点是Convert类可以在action之后调用,因为它是一个静态类,不会被实例化。

它只是听起来更好一些

代码语言:javascript
复制
Convert.ToBoolean(var);

而不是

代码语言:javascript
复制
Converter.ConvertToBoolean(var);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22167799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档