C#中 Vector的用法

Vector x=new Vector();
x.Value=20;
Vector y=x;
Console.WriteLine(y.Value);
y.Value=50;
Console.WriteLine(x.Value);
Vector 是一个引用类型,引用类型在使用的时候需要new 来实例化一个。这段代码执行后,只有一个 Vector 对象,x,y 都指向包含该对象的内存地址。因为x,y 存储的都是对象的引用,所以当y 改变的时候, x 也会改变。所以该程序输出的结果是20 和50.
C#中的Vector的作用是什么意思?
跟C++的指针做比较呢?

1. 你这里用的Vector就是自定义的一个类,引用类型。

2. C#的System.Windows命名空间中,有个结构体类型Vector,值类型。

3. 不管是你自定义的这个Vector类,还是System.Windows命名空间中的Vector结构体,都与C++ STL中的Vector没任何关系,也没有什么可比较的。C++ STL中的Vector是用来代替数组的,和C#中的List、AraayList等集合类型还有一点相似性。

4. 这里的Vector与指针更没有关系,不过引用类型的引用变量和指针比较像,你可以查询下C#引用类型和值类型的区别,就明白了。追问

引用类型的引用变量和指针比较像

我觉得有点像……可知道的太少 所以没法判断
这个Vector输入程序后没法编译 错误是缺少基类 我以为是我的编译器出的问题 这回明白了 是自定义的类
这么看的话 引用类型具有指针的某些性质与功能 但与指针的差别很大 交集很小 对么?

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-18
貌似你的理解有错误
而且 C# 中的 Vector 也没有 Value 属性追问

我初学 这个是教程上写的
C#中的Vector的作用是什么意思?
跟C++的指针做比较呢?
这两个问题都是我提的

上面都是教程上写的

追答

C# 中也可以使用指针
不过,这里分明是定义了两个类,所以两次输出的数值都是20才对

Vector x = new Vector();
x.X = 20;
x.Y = 20;
Vector y = x;
Console.WriteLine(y.ToString());
y.X = -20;
y.Y = -20;
Console.WriteLine(x.ToString());

输出:
20,20
20,20

你可以通过下面的示例进行比较:
Vector x = new Vector()
{
X = 20,
Y = 20
};
Console.WriteLine(x.ToString());
this.Vx(x);
Console.WriteLine(x.ToString());
this.Vx(ref x);
Console.WriteLine(x.ToString());
// ===================
private void Vx(Vector v)
{
v.X = -20;
v.Y = -20;
}
private void Vx(ref Vector v)
{
v.X = -20;
v.Y = -20;
}

追问

对不起……我读不下去……好几个函数看不懂……

本回答被提问者采纳

C#中 Vector的用法
1. 你这里用的Vector就是自定义的一个类,引用类型。2. C#的System.Windows命名空间中,有个结构体类型Vector,值类型。3. 不管是你自定义的这个Vector类,还是System.Windows命名空间中的Vector结构体,都与C++ STL中的Vector没任何关系,也没有什么可比较的。C++ STL中的Vector是用来代替数组的,和C...

C#中怎样用list<vector3>给另一个同类型的list赋值
v1=v2;这一行运行之后,你的v1和v2指向的是同一对象,后面无论对v1还是v2处理都会影响对方,后面的那个for就毫无意义了。

C#中Emgu的问题?
1. 确保Emgu CV正确安装和引用:- 确认您已经将Emgu.CV以及相关的库正确安装并添加到项目引用中。- 在项目中引用Emgu CV时,请确保您已经引入了所有必要的依赖项和DLL文件。2. 检查命名空间引用 - 确保您的文件顶部包含了正确的`using`语句,以便能够识别`VectorOfVectorOfPoint`类。using Emgu.CV....

c#如何定义一个向量?
public struct Vector { public double X { get; set; } public double Y { get; set; } public double Z { get; set; } public Vector(double x, double y, double z) : this(){ X = x;Y = y;Z = z;} }

C#(常用API)之MonoBehaviours的类:
在C#中,MonoBehaviours提供了丰富的功能,包括变量成员的继承、自定义方法调度(如Invoke和Coroutine)以及控制游戏逻辑。例如,[ExecuteInEditMode]用于在编辑模式下立即编译脚本,而[HideInInspector]则隐藏了某些变量在Inspector面板中的显示。协程(Coroutines)是Unity中的重要概念,通过IEnumerator方法定义,...

我想知道c#的 appendformat
1.appendformat 是stringbuilder的一个方法,是格式化输出 就是 {0} 到{n}会被依次替换成参数的内容,比如 string.Fromat("我的名字叫{0},年龄{1}",“cspioneer”,18);2. vector 是一个单一功能 3.vectors 是一个功能集合,扮演的角色是把 List<vector > 中所有的vector 计算的结果输出出来...

c语言编写程序怎么输入向量
printf("%d ", vector[i]);} return 0;} ```这个程序首先要求用户输入向量的大小(即元素的数量),然后通过for循环逐个接收用户输入的元素值,并将其存储在数组中。最后,使用另一个for循环遍历数组并打印出所有元素。请注意,在上述代码中,我们假设用户输入了有效的整数。为了保证程序的健壮性,你...

c#中的静态表示什么?
在本例中,把两个矢量加起来会得到另一个矢量,所以返回类型就是Vector。对于这个+运算符重载,返回类型与包含类一样,但这种情况并不是必需的。两个参数就是要操作的对象。对于二元运算符(带两个参数),如+和-运算符,第一个参数是放在运算符左边的值,第二个参数是放在运算符右边的值。C#要求...

solidworks二次开发C#---数学计算(空间变换)
1.MathTransform接口,用于矩阵的运算;2.MathVector接口,用于三维空间向量的运算;3.MathPoint,三维空间点的运算;介绍这个类,便需要介绍一下空间坐标系的描述。在三维空间,描述一个坐标系需要一个4X4的矩阵,各表示三个坐标轴的方向向量,原点坐标,缩放量。在solidworks中,sldprt有一个初始坐标系,...

你好,能不能发给我一份用C#求特征值和特征向量的代码?感激不尽啊!_百 ...
\/\/ 2. CMatrix& mtxEigenVector - 返回时存放特征向量矩阵,其中第i列为与\/\/ 数组dblEigenValue中第j个特征值对应的特征向量\/\/ 3. int nMaxIt - 迭代次数,默认值为60\/\/ 4. double eps - 计算精度,默认值为0.000001\/\/\/ 返回值:BOOL型,求解是否成功\/\/\/BOOL CMatrix::JacobiEigenv(double dblEigenValue[]...

相似回答