C#运算符笔记

C# 原来也可以进行向量运算,这里解决了一个为时已久的疑惑。

operator
 struct Vector
    {
        public double x, y, z;

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

        public Vector(Vector rhs)
        {
            this.x = rhs.x;
            this.y = rhs.y;
            this.z = rhs.z;
        }

        public override string ToString()
        {
            return "(" + x + "," + y + "," + z + ")";
        }

        public static Vector operator +(Vector lhs, Vector rhs)
        {
            Vector result = new Vector(lhs);
            result.x += rhs.x;
            result.y += rhs.y;
            result.z += rhs.z;
            return result;
        }
        public static Vector operator *(Vector lhs, Vector rhs)
        {
            Vector result = new Vector(lhs);
            result.x *= rhs.x;
            result.y *= rhs.y;
            result.z *= rhs.z;
            return result;
        }
    }
  Vector vect1, vect2, vect3,vect4;
            vect1 = new Vector(3.0, 3.0, 1.0);
            vect2 = new Vector(2.0, -4.0, -4.0);
            vect3 = vect1 + vect2;
            vect4 = vect1 * vect2;
            Console.WriteLine("vect1=" + vect1.ToString());
            Console.WriteLine("vect2=" + vect2.ToString());
            Console.WriteLine("vect3=" + vect3.ToString());
            Console.WriteLine("vect4=" + vect4.ToString());

输出:

参考:http://www.cnblogs.com/LilianChen/archive/2013/03/15/2961901.html

c# implicit explicit关键字 : http://www.cnblogs.com/chengxiaohui/articles/1914190.html

C# checked与unchecked用法: http://www.cnblogs.com/limingluzhu/archive/2011/11/07/2239130.html

发现疑惑,疑虑终究会有解决,只是在那个不经意的时候,未来某一刻。所以要相信,也要坚信,时间终究会给我们答案。

时间: 2024-08-29 21:17:46

C#运算符笔记的相关文章

Java的位运算符笔记

Java的位运算符有:&与.|或.^异或.~非.<<算术左移.>>算术右移.>>>逻辑右移 1. &(与) 全是1-->1 全是0-->0 有1有0-->0 例:000 111 010 101 000 111 101 101 ---------------------------- 000 111 000 101 1 int i = 1; //00000000000000000000000000000001 2 int j = 2

2016/1/1 运算符 笔记整理 接2015/12/30 Java 语法

④运算符 1,赋值运算符:实现从右向左的赋值,符号= 2,算术运算符:符号 + - * / %(求余或求模),结果自动转成最大的 类型,自动升级. 3, 比较运算符:符号 < <= > >= ==(是否相等) != (不相等)                    返回的是布尔类型 boolean 只有两种情况 true false 4,自增自减运算符:符号 ++ -- 在前优先级要高 先运算后赋值 += -= *= /= 5,逻辑运算符:逻辑 与 & &&

运算符笔记

下面为自增运算符(自减雷同)的使用方法(即单目运算符) int a1=2,a2=2; int b=(++a1)*2;//等价于a1=a1+1;b=a1*2; int c=(a2++)*2;//等价于a2=a1*2;c=a2+1; 结果: b=6;a1=3; c=4;a2=3;

[Python学习笔记1]Python语言基础 数学运算符 字符串 列表

这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档:http://docs.python.org/.在此向文档编辑者致谢.请勿将本文用于商业用途. 一.Python语言介绍 首先,Python是一种广泛应用的通用高级编程语言,具有较高的抽象层次,支持面向对象的编程方法.其具有高级的数据结构和许多方便的库文件,可以完成文件IO.系统调用.网络编程,甚至

C++ Primer笔记12_运算符重载_递增递减运算符_成员访问运算符

1.递增递减运算符 C++语言并不要求递增递减运算符必须是类的成员.但是因为他们改变的正好是所操作对象的状态,所以建议设定为成员函数. 对于递增与递减运算符来说,有前置与后置两个版本,因此,我们应该为类定义两个版本的递增与递减运算符. 问题来了,程序是如何区分前置和后置呢?因为都是++和-- 为了解决这个问题,后置版本的递增递减运算符接受一个额外的(不被使用)int类型的形参.当我们使用后置运算符时,编译器为这个形参提供一个值为0的实参.这个形参唯一的作用就是区分前置和后置运算符函数. 因为不会

PHP学习笔记——3.运算符

目录: PHP学习笔记——1.变量 PHP学习笔记——2.常量 PHP学习笔记——3.运算符 1.算术运算符 + - * / %(求模) %:余数的正负值是由被除数决定的 2.比较运算符 == != > < >= <= === !== ===与!==比较的是变量的值和类型 注:在不同类型进行比较时 PHP会将前一个变量先转换成和后一个变量同一类型,再进行比较 布尔->字符串 true->'1' false->'' 字符串->数字 '123abc456'-&g

C语言笔记1--类型、运算符与表达式

 C语言笔记1--类型.运算符与表达式 总论: 变量和常量是程序处理的两种基本的数据对象.声明语句说明变量的名字和类型,也可以指定变量的初值.运算符指定将要进行的操作.表达式则把变量与常量组合起来生成新的值.对象的类型决定该对象可取值的集合以及可以对该对象执行的操作. 一.变量与常量的名字 1.名字是由字母.下划线和数字组成的序列,其第一个字符必须为字母:下划线"_"被看做是字母,但一般不要以下划线"_"开头. 2.名字区分字母大小写,变量名使用小写字母.符号常量

c++笔记--关于箭头运算符重载使用

在stl里面,list的迭代器有重载箭头运算符.之前没搞清楚这个有什么用,看了一些资料,加上自己前面一篇笔记. 写了下面测试程序: 1 #include <iostream> 2 #include <queue> 3 #include <climits> 4 #include <algorithm> 5 #include <memory.h> 6 #include <stdio.h> 7 #include <map> 8

初探C++运算符重载学习笔记&lt;1&gt;

运算符重载 含义: 对抽象数据类型也能够直接使用C++提供的运算符 对已有的运算符赋予多重的含义 使同一运算符针对不同的数据类型产生不同的行为 目的: -->扩展C++运算符的适用范围,以用于类所表示的抽象数据类型 -->程序更简洁 -->代码可读性更好 例如complex_a和complex_b是两个复数对象,如果求和,希望能直接写成 complex_a + complex_b  这样的形式. 实质: 函数重载 返回值类型 operator 运算符(参数表) { .... } 在函数编