通过功能的“内部”变量

时间:2018-10-30 17:00:19

标签: c# function global

我正在尝试为DLL创建代码,该DLL将使用该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函数)中访问的变量?

EDIT1:我想我已经找到一种使变量成为我想要的方式,但是现在我面临着花括号不匹配的问题,即使它们应该匹配(可以在https://imgur.com/a/scBYuaH看到) )

3 个答案:

答案 0 :(得分:0)

iamRoleStatements: - Effect: Allow Action: - dynamodb:DescribeTable - dynamodb:Query - dynamodb:Scan - dynamodb:BatchGetItem - dynamodb:BatchWriteItem - dynamodb:GetItem - dynamodb:PutItem - dynamodb:UpdateItem - dynamodb:DeleteItem Resource: - arn:aws:dynamodb:us-west-1:*:table/${app-name}-${self:custom.stage} - arn:aws:dynamodb:us-west-1:*:table/${app-name}-${self:custom.stage}/* - Effect: Allow Action: - sns:* Resource: "*" 之后删除;

这是一个函数,您无法在尝试移至外部的函数中声明(string name, object value)值。

public const

答案 1 :(得分:0)

我认为您真正要问的问题是“如何编写定义全局变量的函数?”如果这确实是您的问题,那么答案是C#(许多其他面向对象的语言)将不允许这样做。 (除非您使用某种扭曲的反射代码。)

答案 2 :(得分:0)

  

我如何拥有一个不是Main函数声明的函数   可以通过任何其他函数访问的变量,包括   主要功能?

虽然不能动态创建变量,但可以执行以下操作:

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;

        }
    }
}