Внутренняя переменная через функцию - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь создать код для DLL, который будет управлять, создавать и возвращать переменные программе, используя ее. Я мог бы просто не использовать DLL, но я хочу, чтобы мой код был менее загроможденным, а также чтобы сэкономить время в операторах "if var == what".

Вот мой код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace JERK_mgr
{
    class Program
    {
        static void Main(string[] args)
        {
            // DLL file that makes managing, reading and creating variables easier
            // >>J03L<<
            // v0.0-initial 

            newVar("", "");
            Console.WriteLine(TESTVAR);
        }

        internal static void newVar(string name, object value);
        {
            public const string TESTVAR = "hey it actually worked! :D";

        }
    }
}

В данный момент я не собираюсь делать что-либо, кроме следующего: - Позвони с Главного - создать переменную, к которой затем можно получить доступ через Main и любые другие методы.

Мне известно, что я могу использовать внутреннее неправильно здесь, но это была просто попытка заставить его работать и просто была общедоступной.

Что тогда происходит, я получаю ошибку в

internal static void >>newvar<<(string name, object value)

сказать, что оно должно объявлять тело, но это не моя главная проблема, по крайней мере, насколько я знаю.

Я тогда получаю ошибку в

internal static void newvar(string name, object value)
>>{<<

Я также заметил, что

internal static void newVar(string name, object value);
{
    public const string TESTVAR = "hey it actually worked! :D";
>>}<<

при наведении или выборе, говорит, что он соответствует до

class Program
{

Итак, я спрашиваю, как у меня есть функция, которая не является функцией Main, объявляет переменную, которая доступна для любой другой функции, включая функцию Main?

РЕДАКТИРОВАТЬ1: Я думаю, что нашел способ сделать переменные, как я хочу их, но теперь я сталкиваюсь с проблемой несовпадения фигурных скобок, даже если они должны совпадать (можно увидеть в https://imgur.com/a/scBYuaH)

Ответы [ 3 ]

0 голосов
/ 30 октября 2018

Я думаю, что вы действительно задаете вопрос: «Как мне написать функцию, определяющую глобальные переменные?» Если это действительно ваш вопрос, то ответ на C # (любые другие объектно-ориентированные языки) не позволит. (если, возможно, вы не используете какой-то искаженный код отражения.)

0 голосов
/ 30 октября 2018

как у меня есть функция, которая не является основной функцией, объявляет переменная, которая доступна в любой другой функции, включая Основная функция?

Хотя вы не можете динамически создавать переменные, вы можете сделать что-то вроде:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp29
{
    class Program
    {

        public static dynamic Vars = new System.Dynamic.ExpandoObject();

        static void AddorUpdateVar(string name, object value)
        {
            var vd = (IDictionary<string, object>)Vars;
            vd[name] = value;
        }
        static void Main(string[] args)
        {

            AddorUpdateVar("Hello", 213);

            var a1 = Vars.Hello;

            AddorUpdateVar("Hello", "World");

            var a2 = Vars.Hello;

            Vars.Hello = new int[] { 7, 3 };

            var a3 = Vars.Hello;

        }
    }
}
0 голосов
/ 30 октября 2018

удалить ; после (string name, object value)

и это функция, которую вы не можете объявить значением public const в функции, пытаясь выйти наружу.

class Program
{
    public string TESTVAR = "hey it actually worked! :D";
    internal static void newVar(string name, object value)
    {

    }
    static void Main(string[] args)
    {
       //....
    }
}
...