1

I separated the three scripts from the same folder as one was interfering with the other and when a reference a namespace in one of those scripts I get a "missing using directive/ assembly reference" error

I tried running the dotnet add reference command and it didn't end up doing anything

Don't know where to put the code so...

It unnecessarily complicated but ignore that the error is to do with the using Errors are the Vector3 and using thingys

Script 1

namespace StateCalculator
{
    using System;
    using System.Configuration;
    using System.Runtime.InteropServices;
    using System.IO;
    using System.Linq;
    using CustomVariablesAndFunctionsEngine.Vectors; <- Error
    using CustomVariablesAndFunctionsEngine.Math; <- Error

    public class Calculator
    {
        #region Variables

        public CalculatorStateMachine StateMachine { get; private set; }
    
        public Add Add { get; private set; }
        public Subtract Subtract { get; private set; }
        public Multiply Multiply { get; private set; }

        public Divide Divide { get; private set; }
        public Square Square { get; private set; }
        public Sqrt Sqrt { get; private set; }
        public Cube Cube { get; private set; }
        public Cbrt Cbrt { get; private set; }

        #endregion

        #region Functions

        static void Main(string[] args)
        {
            Calculator c = new Calculator();
            c.Awake();
            c.Round1();
        }

        private void Awake()
        {
            StateMachine = new CalculatorStateMachine();

            Add = new Add(this, StateMachine);
            Subtract = new Subtract(this, StateMachine);
            Multiply = new Multiply(this, StateMachine);
            Divide = new Divide(this, StateMachine);
            Square = new Square(this, StateMachine);
            Sqrt = new Sqrt(this, StateMachine);
            Cube = new Cube(this, StateMachine);
            Cbrt = new Cbrt(this, StateMachine);
        }

        private void Round1()
        {
            string YesOrNo;
            int operation;

            Console.WriteLine("This is a simple calculator");
            Console.WriteLine("Would you like to Continue Yes/No");
            YesOrNo = Console.ReadLine().ToLower();

            if(YesOrNo == "yes")
            {
                Console.WriteLine("What operation do you want to use");
                Console.WriteLine("1 : Add");
                Console.WriteLine("2 : Subtract");
                Console.WriteLine("3 : Multiply");
                Console.WriteLine("4 : Divide");
                Console.WriteLine("5 : Square");
                Console.WriteLine("6 : Sqrt");
                Console.WriteLine("7 : Cube");
                Console.WriteLine("8 : Cbrt");
                operation = Convert.ToInt32(Console.ReadLine());

                Which(operation);
            }
            
            else
            {
                Console.WriteLine("Ok, sorry to see you go :(");
            }
        }

        private void Which(int operation)
        {
            if(operation == 1)
                {
                    StateMachine.ChangeOperation(Add);
                }

            else if (operation == 2)
            {
                StateMachine.ChangeOperation(Subtract);
            }

            else if (operation == 3)
            {
                StateMachine.ChangeOperation(Multiply);
            }

            else if (operation == 4)
            {
                StateMachine.ChangeOperation(Divide);
            }

            else if(operation == 5)
            {
                StateMachine.ChangeOperation(Square);
            }

            else if(operation == 6)
            {
                StateMachine.ChangeOperation(Sqrt);
            }

            else if(operation == 7)
            {
                StateMachine.ChangeOperation(Cube);
            }

            else if(operation == 8)
            {
                StateMachine.ChangeOperation(Cbrt);
            }

            else
            {
                Console.WriteLine("Sorry I cant do that");
                Which(operation);
            }
        }

        #endregion
    }

    public class CalculatorStateMachine
    {
        #region Variables

        public Operation CurrentOperation { get; private set; }

        #endregion

        #region Functions

        public void Initialize(Operation startingOperation)
        {
            CurrentOperation = startingOperation;
            CurrentOperation.Enter();
        }

        public void ChangeOperation(Operation newOperation)
        {
            CurrentOperation = newOperation;
            CurrentOperation.Enter();
        }

        #endregion
    }

    public class Operation
    {
        #region  Variables

        public Calculator Calculator { get; protected set; }
        public CalculatorStateMachine StateMachine { get; protected set; }

        protected Vector3 Numbers;

        #endregion

        #region Functions

        public Operation(Calculator calculator, CalculatorStateMachine stateMachine)
        {
            this.Calculator = calculator;
            this.StateMachine = stateMachine;
        }
    
        public virtual void Enter()
        {
            Numbers = new Vector3(0f, 0f, 0f);
            SetVariables();
            Calculate(this.Numbers);
        }

        public virtual void SetVariables()
        {

        }

        public virtual void Calculate(Vector3 Numbers)
        {
            
        }

        #endregion
    }

    public class Add : Operation
    {
        public Add(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
        {

        }

        public override void Enter()
        {
            base.Enter();
        }

        public override void Calculate(Vector3 Numbers)
        {
            base.Calculate(Numbers);
            Numbers.z = Numbers.x + Numbers.y;
            Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
        }

        public override void SetVariables()
        {
            base.SetVariables();
            
            Console.WriteLine("First Number");
            Numbers.x = Convert.ToSingle(Console.ReadLine());
            Console.WriteLine("Second Number");
            Numbers.y = Convert.ToSingle(Console.ReadLine());
        }
    }

    public class Subtract : Operation
    {
        public Subtract(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
        {

        }

        public override void Enter()
        {
            base.Enter();
        }

        public override void Calculate(Vector3 Numbers)
        {
            base.Calculate(Numbers);
            Numbers.z = Numbers.x - Numbers.y;
            Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
        }

        public override void SetVariables()
        {
            base.SetVariables();
            
            Console.WriteLine("First Number");
            Numbers.x = Convert.ToSingle(Console.ReadLine());
            Console.WriteLine("Second Number");
            Numbers.y = Convert.ToSingle(Console.ReadLine());
        }
    }

    public class Multiply : Operation
    {
        public Multiply(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
        {

        }

        public override void Enter()
        {
            base.Enter();
        }

        public override void Calculate(Vector3 Numbers)
        {
            base.Calculate(Numbers);
            Numbers.z = Numbers.x * Numbers.y;
            Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
        }

        public override void SetVariables()
        {
            base.SetVariables();
            
            Console.WriteLine("First Number");
            Numbers.x = Convert.ToSingle(Console.ReadLine());
            Console.WriteLine("Second Number");
            Numbers.y = Convert.ToSingle(Console.ReadLine());
        }
    }

    public class Divide : Operation
    {
        public Divide(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
        {

        }

        public override void Enter()
        {
            base.Enter();
        }

        public override void Calculate(Vector3 Numbers)
        {
            base.Calculate(Numbers);
            Numbers.z = Numbers.x / Numbers.y;
            Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
        }

        public override void SetVariables()
        {
            base.SetVariables();
            
            Console.WriteLine("First Number");
            Numbers.x = Convert.ToSingle(Console.ReadLine());
            Console.WriteLine("Second Number");
            Numbers.y = Convert.ToSingle(Console.ReadLine());
        }
    }

    public class Square : Operation
    {
        public Square(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
        {

        }

        public override void Enter()
        {
            base.Enter();
        }

        public override void Calculate(Vector3 Numbers)
        {
            base.Calculate(Numbers);
            Numbers.z = MathF.Pow(Numbers.x, 2f);
            Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
        }

        public override void SetVariables()
        {
            base.SetVariables();
            
            Console.WriteLine("Number");
            Numbers.x = Convert.ToSingle(Console.ReadLine());
        }
    }
    
    public class Sqrt : Operation
    {
        public Sqrt(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
        {

        }

        public override void Enter()
        {
            base.Enter();
        }

        public override void Calculate(Vector3 Numbers)
        {
            base.Calculate(Numbers);
            Numbers.z = MathF.Sqrt(Numbers.x);
            Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
        }

        public override void SetVariables()
        {
            base.SetVariables();
        
            Console.WriteLine("Number");
            Numbers.x = Convert.ToSingle(Console.ReadLine());
        }
    }

    public class Cube : Operation
    {
        public Cube(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
        {

        }

        public override void Enter()
        {
            base.Enter();
        }

        public override void Calculate(Vector3 Numbers)
        {
            base.Calculate(Numbers);
            Numbers.z = MathF.Pow(Numbers.x, 3f);
            Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
        }

        public override void SetVariables()
        {
            base.SetVariables();
        
            Console.WriteLine("Number");
            Numbers.x = Convert.ToSingle(Console.ReadLine());
        }
    }  

    public class Cbrt : Operation
    {
        public Cbrt(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
        {

        }

        public override void Enter()
        {
            base.Enter();
        }

        public override void Calculate(Vector3 Numbers)
        {
            base.Calculate(Numbers);
            Numbers.z = MathF.Cbrt(Numbers.x);
            Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
        }

        public override void SetVariables()
        {
            base.SetVariables();
        
            Console.WriteLine("Number");
            Numbers.x = Convert.ToSingle(Console.ReadLine());
        }
    } 

}
Pranav Hosangadi
  • 23,755
  • 7
  • 44
  • 70
Artemis
  • 21
  • 2
  • 4
    usings should be outside of the namespace no? – johnny 5 Dec 06 '22 at 21:18
  • 2
    Are you trying to reference a different project? – steven01804 Dec 06 '22 at 21:20
  • 2
    If it's another project in the same solution, right-click on your project in visual studio and choose "add references", then select the other project. – Pac0 Dec 06 '22 at 21:21
  • 3
    You seem to have posted more code than what would be reasonable for your issue. Please read [ask] and how to make a [mre]; providing a MRE helps users answer your question and future users relate to your issue. – gunr2171 Dec 06 '22 at 21:22
  • We need to know how your other project / namespaces are made. – Pac0 Dec 06 '22 at 21:23
  • 3
    @johnny5 no, actually some people prefer placing them inside namespace - see [here](https://stackoverflow.com/a/151560/2501279) why. – Guru Stron Dec 06 '22 at 22:07
  • @steven01804 Yes I am, they are two projects that lie in two seperate folders that are in a parent folder, also wont be able to reply for a while as im heading to school – Artemis Dec 07 '22 at 07:33
  • @Pac0 theyre constructed like "namespace name {using directives; Main bit}" – Artemis Dec 07 '22 at 16:04

1 Answers1

1

I fixed it by transfering the code to a visual studio console app then adding the using directive as a reference in the solution

Artemis
  • 21
  • 2