Tag: 全局变量

IoC vs库中的全局变量

所以说我的类型在构造函数中有一些参数,如下所示: public MyType(IComObject wrapper,string table) {} 现在IComObject是两个不同COM对象的包装器。 我的所有类型(90%)都必须使用IComObject,因此以良好的DI方式(允许测试)我将IComObject传递给需要它的每种类型。 主要的问题是当有人去使用我的COM包装器库时,必须将IComObject的一个实例传递给他们所做的一切,这使得代码有点难以管理和维护。 我想知道是否应该使用IoC容器或用户可以设置的全局变量,以便它们不必传递IComOject实例。 例: public MyType(string table) : this(IoC.Resolve,table) {} 要么 public MyType(string table) : this(StaticClass.ComInstance,table) {} 这样用户就可以这样做: //Set up Ioc container COMObject object = new COMObject(); Ioc.Register(typeof(IComObject),object); MyType mytype = new MyType(“test.tab”); 要么 COMObject object = new COMObject(); StaticClass.ComInstance = object; MyType mytype = new MyType(“test.tab”); 在这种情况下你认为我该怎么做?

何时使用静态变量?

我目前正在使用大量渲染在C#中进行一个项目,并且在几乎所有类中都有一个用于缩放渲染的类型整数的常量值。 我知道我可以在一个地方将这个常量定义为一个普通变量然后传递它,但这看起来真的很麻烦。 何时可以在C#中使用静态变量? 对我的问题最简单的解决方案是创建一个包含所有其他类可以引用的静态变量的类 – 这是不好的设计?

SSIS自定义转换接收变量

我正在C#中创建一个用于SSIS的自定义转换。 我已经能够创建和添加自定义组件并从数据库源接收和更改数据,但我需要更多数据才能在日志表中注册。 这些数据只能与变量一起传递,但我找不到如何向我的组件添加readonlyvariable的良好解释。 我曾尝试使用IDTSVa​​riable100和VariableDispenser,但我无法理解如何使用。 public override void ProvideComponentProperties() { base.ProvideComponentProperties(); base.RemoveAllInputsOutputsAndCustomProperties(); VariableDispenser varDispenser = this.VariableDispenser(); IDTSVariable100 vr = this.VariableDispenser.GetVariables(); IDTSInput100 input = this.ComponentMetaData.InputCollection.New(); input.Name = “Input_B”; IDTSOutput100 output=this.ComponentMetaData.OutputCollection.New(); output.Name = “Output_B”; // the output is synchronous with the input output.SynchronousInputID = input.ID; } 基本上我想定义readonlyvariables ,我可以在自定义组件运行之前改变值,就像原始的“脚本组件”一样。

如何在ASP.NET MVC页面中声明全局变量

我最近开始使用asp.net mvc,但我遇到了一个问题。 我有一个aspx页面,它呈现了一些ascx页面。 我想要做的是在aspx页面声明一个全局变量,以便它对所有孩子都可见。 我试过 但它在子页面上不可见。 我能做什么?

Visual C#中的全局变量

如何在Visual C#中声明全局变量?

为请求的持续时间设置全局变量

我可以为单个Request的长度设置某种全局变量,以便页面的所有控件都可以响应它而不必将它传递给它们中的每一个吗? 例如,如果有人点击了我的MasterPage上的“保存”按钮,我是否可以设置一些内容,以便我页面上的每个UserControl都可以具有如下的Page_Load: protected void Page_Load(object sender, EventArgs e) { if (isSaving) // isSaving is a global variable { saveData(); // save myself } loadData(); } 看起来要比使用母版页中的委托调用Page的save函数容易得多,后者然后将UC1.saveData()调用到每个UserControl,尽管我知道更好的面向对象思维。

如何在没有全局变量的情况下保留数据?

我习惯于编写脚本语言。 PHP,Javascript等,我写了一些相对简单的Java和C#应用程序。 这是一个我一再需要答案的问题,我想我不是唯一一个。 假设我使用的是Javascript。 我有一个由GUI调用的函数A(),它检索一些值。 函数B(),也由GUI调用,需要该值,但函数B()将被调用任意次数,即A()之后的任意长度。 我不希望A()每次重新计算值。 一个示例是登录凭据。 A()要求输入用户名,B()使用该值在每次调用时追加到日志中。 为此我可能只使用一个全局变量。 现在,C#。 没有全局变量! 我该怎么做? 编辑:享受答案,但有很多“尽量不使用全局”的评论。 我明白了,但我想听听这个要求的替代模式。

使用C#在表单之间传递数据的最佳方法

这更像是一个基于理论的问题。 我正在为C#中的最终项目设计,即创建Jeopardy。 我的问题是,在它们之间传递数据的最佳方法是什么? 例如,标题要求游戏在启动后显示选项屏幕。 在这里,他们将选择球员的数量和他们的名字。 我知道在我的gameform load事件中,我可以将这些东西指定为参数,并将它们作为参数从optionsform传递。 这看起来很麻烦,是否有更有效的方法来创建项目范围的变量,无论我目前使用哪种forms,我都可以参考? 感谢您的回答,我们将不胜感激! – 年轻的Padawan编码员

C#类库的线程本地存储

我有一个非常古老但非常大的库,我正在考虑转换为C#类库。 现有库使用存储在TLS中的许多全局变量。 C#没有真正的全局变量概念,但一种解决方法是使用一个名为GlobalVar的静态类,并将它们全部放在这个类中,以便可以通过GlobalVar.xxxxxx访问它们 但是,我的想法是,这会破坏所有正在转换的现有代码,因为GlobalVar类将是一个普通的全局类而不是每个线程存储。 有没有办法让每个线程的这些全局变量? 即C#中__declspec(thread)静态的等价物是什么? 我应该补充一点,我讨厌全局变量。 我认为它们往往是设计不佳的结果。 但是,由于严格的时间限制,第一阶段是将库转换为C#,最小化,然后第2阶段将重新设计它们。

声明和使用全局数组c#

我找不到与此问题有关的任何信息。 我正在尝试在C#中创建一个全局数组,以便我可以在代码中的不同位置输入信息,然后在稍后调用该信息以显示它。 例如,我想获取以下信息并将其放入数组中: string auctionID; string itemName; string itemID; string bid; string buyout; string quantity; 然后我希望能够使用for循环或类似的东西调用该数组,以便我可以在以后显示该信息。 现在,我忘了提到的一件小事是,我可能需要一个数组数组或一个多维数组。 这是因为我将有很多不同的拍卖和每次拍卖的数据(因此上面的变量),我想在程序的最后显示这些信息。 感谢您的时间! 更新1 所以,我认为我并没有说清楚,因为我感到困惑,但这也可能是因为我对这个程序感到有点沮丧。 我希望能够创建一个全局数组,然后在程序中使用不同的函数来获取和设置存储在该数组中的信息,因为不同的函数将修改该数组的不同部分。 另外,我不介意使用缓存,如果我理解它是如何工作的,甚至有一个链接来阅读它。 最后要补充一点,我在Windows Phone 7上这样做,所以我可以使用哪些库和系统调用。 更新2 我在OOP上有点生疏,所以我将更多地阅读它(感谢处理大量HTML并且没有机会进行真正的编程)。 谢谢大家的建议。 如果我不能弄清楚什么,我可能会回复这个话题。 干杯!