【对象初始化的完整过程(C#)】教程文章相关的互联网学习教程文章

c# – 事件处理程序只能在IHttpModule初始化期间绑定到HttpApplication事件.【代码】

我跟着这篇文章: Effective NHibernate Session management for web apps 但是这个:public void Dispose() {app.BeginRequest -= ContextBeginRequest;app.EndRequest -= ContextEndRequest; }给我这个错误:Event handlers can only be bound to HttpApplication events duringIHttpModule initialization.为什么?我可以忽略这些Dispose语句吗?解决方法:IHttpModule与应用程序本身紧密耦合,因此当应用程序被销毁时,IHttpModul...

c# – 在WP7中预先初始化BackgroundAudioPlayer?

当我在Windows Phone 7应用程序中使用BackgroundAudioPlayer时,第一次播放歌曲时需要花费大量时间加载.有没有办法在播放第一首曲目之前预先初始化BackgroundAudioPlayer,这样当我开始播放时,它会一直开始?我用Google搜索了,但没有运气.我正在使用BackgroundAudioPlayer.Instance想要播放,暂停,停止等音频跟踪.我还能做些什么来解决这个问题吗?解决方法:你可以调用BackgroundAudioPlayer.Instance.Stop();在您的App构造函数中,然后...

c# – AutoMapper如何避免初始化【代码】

我如何避免要求这样的代码:public static class BusinessLogicAutomapper {public static bool _configured;public static void Configure(){if (_configured)return;Mapper.CreateMap<Post, PostModel>();_configured = true;} }在我的BL程序集中,并且必须从我的MVC应用程序中的Global.asax调用Configure()? 我的意思是,我期待这样的电话:public PostModel GetPostById(long id){EntityDataModelContext context = DataContext...

c# – 从密码中获取初始化向量(与密钥一样)是否可以,因为盐将是随机的?【代码】

密码大师请帮忙. 我已经了解到,使用对称算法(例如AES)的加密密钥应该通过PBKDF2函数从密码派生,使用每个加密中的随机盐.我还了解到IV不应该是硬编码的,也不应该直接绑定到(派生自)密码字符串或加密密钥.到目前为止,我随机生成密钥派生盐和IV,每个16字节用于我的AES-256加密,并将它们与加密的有效负载一起存储. 现在我认为随机生成IV是多余的,如果我使用随机盐,因为我可以从密码字符串中获取密钥和IV.或许我不应该? 所以我的问题最...

C#强制静态字段初始化【代码】

我们目前正在实现某种基于字符串的“可扩展枚举类”.下面仅显示此C#代码的一部分,以使问题更易于理解. 如果我运行下面的代码,它会将“BaseValue1”和“BaseValue2”写入控制台. 如果我取消注释RunClassConstructor行并运行代码,它还会将“DerivedValue1”和“DerivedValue2”写入控制台.这是我想要实现的,但我想在没有RunClassConstructor行的情况下实现它. 我认为DerivedEnum.AllKeys将触发“DerivedValue1”和“DerivedValue2”的...

c# – 数据绑定在Form Load之前不起作用 – 仅在Form加载后初始化ComboBox项【代码】

我在winform上有两个ComboBox,一个包含List“MyList”中的所有值,另一个我希望从第一个选定索引中获取所有值.但我认为将项目加载到ComboBox中时会出现问题.public partial class Form1 : Form {public Form1(){ComboBox box = new ComboBox();box.DropDownStyle = ComboBoxStyle.DropDownList;box.DataSource = MyList.ToList();box.SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);Tab_Page.Controls.A...

c# – 为什么解析的double不等于初始化的double,假设它具有相同的值?【代码】

当我执行这一行时:double dParsed = double.Parse("0.00000002036");dParsed实际获取值:0.000000020360000000000002 与此系列相比,double dInitialized = 0.00000002036;在这种情况下,dInitialized的值正好是0.00000002036 他们在调试器中: 这种不一致是一件令人烦恼的事情,因为我想按照以下方式运行测试:[Subject("parsing doubles")] public class when_parsing_crazy_doubles{static double dInitialized = 0.00000002036;s...

c# – 如何使用对象初始化器初始化WebClient?【代码】

我有一个像这样的WebClient:WebClient _webClient = new WebClient {UseDefaultCredentials = true,Encoding = System.Text.Encoding.UTF8, }; _webClient.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");我想使用对象初始化器初始化Headers:WebClient _webClient = new WebClient {UseDefaultCredentials = true,Encoding = System.Text.Encoding.UTF8,...

在C#中声明或创建和初始化数组后,为数组分配值有什么区别?【代码】

参见英文答案 > Initializing c# array with new vs. initializing with literal 5个在教程中,我一直看到有两种方法可以在C#中为数组赋值. 第一种方法是:double[] values = {23.245, 14.22,12.00};第二种方法是:double[] values = new double[] {23.245, 14.22, 12.00};如果有人向我解释两者之间的区别,我将不胜感激. 干杯.解决方法:第一个使用数组初始化器的概念.这是一种语法糖.欲了解更多...

如何在C#中基于层次结构接口初始化对象【代码】

我有一个接口ICommandHandler< TCommand>其中TCommand的类型为ICommand(另一个接口).SomeWorkProcessCommandHandler类实现ICommandHandler. 我无法做的是将SomeWorkProcessCommandHandler类传递给另一个类,它在构造函数中需要ICommandHandler 在下面的代码中,Manager类需要ICommandHandler< TCommand>在它的构造函数中.当我传递someWorkProcessCommandHandler对象时,我收到编译时错误.如果我投了它我会得到运行时异常. 如何在构造函...

c# – 是否应始终初始化Model类的复合属性?【代码】

我试图在SO上找到类似的问题,但没有运气.道歉,如果它是重复的. 声明它们时实例化类型变量有什么缺点? 在许多代表业务对象模型的类中,我们有这样的事情:public class RateArea {...} public class FlatRateSchedule {public string ScheduleID {get;set;}public decimal MaxAmount {get;set;} }public class PricingData {private List<RateArea> rateAreaList = new List<RateArea>();private FlatRateSchedule flatRateSchedul...

c# – 推断列表是否可以初始化?【代码】

我知道我可以按如下方式初始化集合var array = []{"1", "2", "3"};这将自动推断我想创建一个String类型的数组,但这将限制我从数组添加或删除索引,因为数组具有固定的大小. 有没有相反的通用列表类型,编译器应该推断哪个类型“T”基于初始化程序中的项目? 也许像新的List(){…}解决方法: var list = new[] {"1", "2", "3"}.ToList();

c# – 对可能未初始化的Dictionary元素执行加号等于操作的简明方法【代码】

我正在寻找一种扩展方法或任何其他建议,可以帮助我尽可能简洁地使用此代码.foreach( Layer lyr in this.ProgramLayers )foreach( UWBCEvent evt in this.BcEvents.IncludedEvents )EventGroupLayerLosses[new EventGroupIDLayerTuple(evt.EventGroupID, lyr)] += GetEL(evt.AsIfs, lyr.LimitInMillions, lyr.AttachmentInMillions);上面的代码有一个相当明确的目的,我用一个复合键将值分成组.但是,此代码将失败,因为字典最初为空,并...

c# – 如何保护库用户免于错误的初始化?【代码】

参见英文答案 > how to set compile time validation on class instance members 2个我正在研究一个dll,它包含一个能够表示32到126之间整数值的类型,并被称为“PByte”(用于Printable Byte).问题是我想保护用户不要用例如初始化类型. 1000.这不应该是例外.它应该阻止编译,就像Visiual Studio尝试初始化例如256的字节一样.该类型在构造函数中初始化.public PByte(int value) {/* if (value < 32...

c# – 为什么CLR通过初始化优化掉未使用的静态字段?【代码】

我们有两个代码片段: A:public class Foo {private static Bar _unused = new Bar(); }B:public class Foo {private static Bar _unused;static Foo(){_unused = new Bar();} }在情况A中,CLR甚至不会调用Bar ctor(除非它是调试版本或附加调试器),但是在情况B中它在所有情况下都被调用. 问题是,在Bar构造函数中,可以进行调用,使其可以从其他地方访问 – 最常见的是事件订阅. 所以: >为什么案例A和B的评估方式不同?>为什么CLR根...