我正在尝试为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看到) )
答案 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;
}
}
}