本公司郑重承若:一次合作,终身免费提供技术服务!13071312958hp@hepingw.com微信联系和平网络科技-专业网站建设|网站制作|仿站|模板下载|微信小程序开发-何平网络科技(深圳)有限公司 |建站论坛 |免费建站 |建站视频教程

和平网络科技-专业网站建设|网站制作|仿站|模板下载|微信小程序开发-何平网络科技(深圳)有限公司
当前位置:和平网站建设 > 建站技术 > SEO教程 >

<免费建站系统>帮帮我,我负载过重(C#) - SEO教程

发表日期:2018-03-17 21:00文章编辑:和平网络浏览次数: 标签: SEO时代    

作为有关 C# 语言类型漫谈的继承,网站建设公司,本月我们将接头运算符重载的问题。运算符重载(除非出格指明,不然本专栏的其余
部门一律将其简称为“重载”)是指答允用户利用用户界说的范例编写表达式的本领。它答允用户界说的范例与预界说的
范例具有沟通的成果。

譬喻,凡是需要编写雷同于以下内容的代码,以将两个数字相加。很明明,sum 是两个数字之和。

int i = 5;
int sum = i + j;

假如可以利用代表复数的用户界说的范例来编写沟通范例的表达式,那虽然是最好不外了:

Complex i = 5;
Complex sum = i + j;

运算符重载答允为用户界说的范例重载(即指定明晰的寄义)诸如“+”这样的运算符。假如不举办重载,则用户需要编写
以下代码:

Complex i = new Complex(5);
Complex sum = Complex.Add(i, j);

此代码可以很好地运行,但 Complex 范例并不能象语言中的预界说范例那样发挥浸染。

任何工作都有特定的时间和场合
运算符重载是一个容易引起误解的语言成果,并且编程人员看待它的立场也截然不同。一些人认为:用户利用这一成果编
写的措施将令人费解,并且它也不该归于编程语言。另一些人则认为它是一个很不错的成果,在任那里所都可以利用。

这两种概念既包括正确的身分,但也有欠妥之处。应该认可,运算符重载大概会导致编写出的措施令人费解,但按照我的
履历,纵然不利用运算符重载,也很大概编写出令人费解的代码。在某些环境下,不利用重载甚至会使代码越发令人费
解。

那些不分场所、随意利用重载的人“确实”在出产令人费解的代码。

在语言中之所以利用重载,是为了在观念上对用户的类或布局举办简化。只有在有助于提高用户所写代码的可读性时,才
能对运算符举办重载。请留意,我们所说的检讨尺度是“更清晰”,而不是“更简短”。运用了运算符重载的类险些老是
会使代码变得更简短,但并不能每次都使代码变得更清晰(即可读性更强)。

为了说明这一点,我建立了多个重载示例。您需要仔细阅读这些代码,想一想哪个运算符举办了重载,免费建站系统,重载的运算符执行
了什么运算。

考试
1
BigNum n1 = new BigNum("123456789012345");
BigNum n2 = new BigNum("11111");
BigNum sum = n1 + n2;

B
Matrix m1 = loadMatrix();
Matrix m2 = loadMatrix();
Matrix result = m1 * m2;

iii
DBRow row = query.Execute();
while (!row.Done)
{
  Viewer.Add(row);
  row++;
}

IV
Account current = findAccount(idNum);
current += 5;

谜底和接头
1
本示例中,要执行的运算是显而易见的。这种加法只不外是将预界说的范例相加,每小我私家都大白执行了什么运算,因此在
这个示例中,利用运算符重载很有意义。

B
本示例演示了矩阵如何相乘。从观念上来说,矩阵乘法与通例乘法不完全雷同,但它是一个明晰界说的运算,因此任何理
解矩阵乘法的人看到这种重载的运算符时,都不会感想惊奇。

iii
本示例中,增量 (++) 运算符举办了重载,它使数据库行向前移至下一行。任何与数据库行有关的事物都不行能使我们理
解这种增量的真正寄义,并且,这种增量要执行的运算也不是那么明明。

在这一示例中,重载的利用也没有使代码变得更简朴。假如我们转而利用以下代码,环境就许多几何了:

DBRow row = query.Execute();
while (!row.MoveNext())
{
  Viewer.Add(row);
}

IV
将事物和雇员相加代表什么寄义呢?本示例中,选择是一个不错的要领,将其与雇员数相加就会注册雇员。这是一种很糟
糕的运算符重载用法。

原则
何时举办重载的原则是相当简朴的。假如用户但愿能执行这种运算,和平网站建设,那么就应该举办重载。

重载算术运算符
要重载 C# 中的运算符,指定要执行运算的函数就可以了。函数必需在运算所涉及的范例中举办界说,而且至少有一个参
数属于该范例。这样可以防备对 int 的加法或其它奇怪事物举办重载。

为了演示重载,我们将开拓一个矢量。矢量可以被认为是从原点到特定二维点的线。可以对矢量执行多种运算。以下是该
范例的大致界说:

struct Vector
{
  float x;
  float y;

  public Vector(float x, float y)
  {
      this.x = x;
      this.y = y;
  }
}

要实际利用,矢量应支持以下运算:

获取长度
将矢量乘以某个数字
将矢量除以某个数字
将两个矢量相加
将一个矢量减去另一个矢量
计较两个矢量的点积
我们的任务是确定应该如何实现这些运算。

长度
对付获取矢量的长度,好像没有任何有意义的运算符。长度不会变革,因此将它作为属性是很有意义的:

  public float Length
  {
      get
      {
        return((float) Math.Sqrt(x * x + y * y));
      }
  }

将矢量乘以/除以

相关新闻

<和平网络科技有限公司>你所不知道的网站外链高级操作策略

许多seo认为外链对付seo已经没有多大结果了,其实并不是这样的。外链对付seo的辅佐照旧很大...

日期:2018-03-18 浏览次数:196

<和平网络科技有限公司>为何说“专车新规”并未违反上位法?

“2350件”。这是交通部会同多部分起草的《关于深化改良进一步推收支租汽车行业康健成长的...

日期:2018-03-18 浏览次数:110

<网站模板下载>7月1日起,微信支付宝不实名将没法发红包 - SE

据动静,央行非银付出机构新规将于7月施行。微信方面称,到7月1日,如不实名,通过微信收...

日期:2018-03-17 浏览次数:99

<织梦网站>飞嘀打车上线,迟到的「正规军」还有机会吗? - S

在滴滴打车在中关村公布上线 1092 天之后,北京市奇华出租车电召中心(96106 电召平台)正式...

日期:2018-03-17 浏览次数:60

<网站模板下载>华为努力爬坡,小米惯性向前 - SEO技术

克日,市场调研机构Canalys宣布最新陈诉,华为在第三季度智妙手机出货量同比增长81%。逾越小...

日期:2018-03-17 浏览次数:197

“网站制作”爆料称:百度联合第三方公司推出SEO付费服务 -

前天我还发文章说:“百度公布已全面落实整改法子”,许多SEOer高呼说:SEO的春天来了。这不...

日期:2018-03-17 浏览次数:68

模板案例-更多模板
为企业客户高端定制HTML5响应式企业蓝色风格官网,手机自适应

为企业客户高端定制HTML5响应式企业蓝色风格官网,手机自适应

官网企业中英文双语模板-绿色风格机械电器设置类企业网站,产

官网企业中英文双语模板-绿色风格机械电器设置类企业网站,产