C # object removed strangely

this code runs after the button is pressed.

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using xnaWindow.FormUI;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace xnaWindow.MathClass
{    
    public class Math_Vector 
    {
        private Vector3 vectorA;
        private Vector3 vectorB;
        private Vector3 vectorR;
        private List<float> vResult;

        VertexPositionColor[] verts1,verts2,verts3;

        public void calculate(List<float>v1,List<float>v2)
        {
            Console.WriteLine("calculating..");

            vResult = new List<float>(); 
            vectorA = new Vector3(v1.ElementAt(0), v1.ElementAt(1), v1.ElementAt(2));  
            vectorB = new Vector3(v2.ElementAt(0), v2.ElementAt(1), v2.ElementAt(2)); 

            //this is the manual calculation of vector addition
            float xRes = v1.ElementAt(0) + v2.ElementAt(0);
            float yRes = v1.ElementAt(1) + v2.ElementAt(1);
            float zRes = v1.ElementAt(2) + v2.ElementAt(2);

            vectorR = new Vector3(xRes,yRes,zRes);
            //vectorR = vectorA + vectorB; 

            verts1    = new VertexPositionColor[2];
            verts1[0] = new VertexPositionColor(new Vector3(0, 0, 0), Color.Black);
            verts1[1] = new VertexPositionColor(vectorA, Color.Black);

            verts2    = new VertexPositionColor[2];
            verts2[0] = new VertexPositionColor(new Vector3(0, 0, 0), Color.Black);
            verts2[1] = new VertexPositionColor(vectorB, Color.Black);

            verts3    = new VertexPositionColor[2];
            verts3[0] = new VertexPositionColor(new Vector3(0, 0, 0), Color.Black);
            verts3[1] = new VertexPositionColor(vectorR, Color.Black);

            int i = 0;
            //this is for console debug
            foreach (float va in v1)
            {
                Console.WriteLine("adding " + va.ToString() + v2.ElementAt(i).ToString());
                vResult.Add(va+v2.ElementAt(i));
                i++;
            }

        }

        public Vector3 getV1(){return vectorA;}
        public Vector3 getV2(){return vectorB;}
        public Vector3 getV3(){return vectorR;}

        public VertexPositionColor[] getVertex1( )
        { 
            return verts1;
        } 
        public VertexPositionColor[] getVertex2()
        {
            return verts2;
        }
        public VertexPositionColor[] getVertex3()
        {
            return verts3;
        }
    }
}

      

strange thing: verts1, vertes2, verts3 always get null after exiting the function. so the getters method that I called after execution always returns null.

what should i do guys?

this is my call to getters

math.calculate(v1, v2);
verts1 = math.getVertex1();
verts2 = math.getVertex2();
verts3 = math.getVertex3();

      

+2


source to share


2 answers


after flashing the codes for 3 days now i know what the problem is. if you have downloaded my code and havent noticed it,

Apparently the program was confused about which textboxes they should calculate and which button triggers which. which were called by the controls in the list <>

in form_ui there is some way to add some controls to list <>. I have placed some code that removes the contents of the list from the container. but it still doesn't remove the inner part. !!!!!!!!!!!!!!! XDXP



so I need to put clear () on the list. then everything inside is gone.

now the problem is gone.

0


source


If I had to guess, I'm pretty sure you are using structs instead of classes. And, most likely, you are just treating struct instances like classes forgetting that they are copies by value. So you will probably get uninitialized somewhere (which you see as "NULL").



+1


source







All Articles