草庐IT

猿创征文|那些年我们追过的那些技术

全部标签

c# - 我们可以使用 Kudu 将 C# 7 Web 应用程序部署到 Azure 吗?

自从发布了VisualStudio2017并且我们可以使用新的C#7功能后,我预计这将在AzureWeb应用程序上部署时发挥作用。不幸的是,我们在使用持续部署(kudugitdeploy)时看到编译错误,因此Azure似乎还不支持新的工具链。我们现在可以做些什么来让它工作(除了直接发布程序集之外)? 最佳答案 因为我们在Azure中还没有msbuild15。如果您想通过持续集成使用c#7功能,您可能需要一些解决方法对于dotnet核心网络解决方案,您可以开箱即用在Azure中构建它。(它使用自己的dotnetmsbuild.dll)

c# - 为什么我们使用虚拟和覆盖?

如果不使用override和virtual效果一样,为什么还要使用override和virtual?示例1:classBaseClass{publicvirtualstringcall(){return"A";}}classDerivedClass:BaseClass{publicoverridestringcall(){return"B";}}输出:B示例2:classBaseClass{publicstringcall(){return"A";}}classDerivedClass:BaseClass{publicstringcall(){return"B";}}输出还是一样:输出

c# - 在 switch case 中,如果我们将 "default"写为任何单词或单个字母,它不会抛出错误

在switch中,如果我们写任何单词或单个字母而不是default,它不会抛出错误。例如switch(10){case1:break;hello:break;}它运行时没有抛出错误。谁能解释一下这是如何工作的? 最佳答案 它正在编译,因为hello:是一个标签,因此可以作为goto的目的地。当我编译这个时,我收到了关于未引用标签的警告(因为我没有转到)这是您可以放入LINQPad的示例-您会注意到它同时打印“1”和“hello”:switch(1){case1:"1".Dump();gotohello;break;hello:"he

c# - 我们在哪里使用 Debug/Trace 语句

我使用C#(使用VSIDE)进行开发。我对调试/跟踪语句感到困惑。我们在哪里以及为什么使用这些语句?我经常在其他开发人员的源代码中看到这些。谁能指点一下? 最佳答案 Debug语句仅出现在Debug版本中。Trace语句存在于调试和发布版本中。为了调试或检查,您可以将Debug和Trace语句放在要输出某些值的地方。这篇MS支持文章可能会引起您的兴趣:HowtotraceanddebuginVisualC#TheTraceclassroutesmessagestolisteners:classesthataredesignedtoa

c# - 我们可以使用枚举作为类型安全的实体 ID 吗?

我们在EF6.1代码优先设置中使用一个相当大的模型,我们使用int作为实体ID。不幸的是,这并不像我们希望的那样类型安全,因为很容易混淆id,例如比较不同类型实体的id(myblog.Id==somePost.Id)或类似的。或者更糟:myBlog.Id++。因此,我想出了使用类型化ID的想法,因此您不能混淆ID。所以我们的博客实体需要一个BlogId类型。现在,显而易见的选择是使用一个包含在结构中的int,但您不能将结构用作键。而且你不能扩展int...-等等,你可以!使用枚举!所以我想到了这个:publicenumBlogId:int{}publicclassBlog{public

c# - .NET 4 ObjectCache - 我们可以连接到 "Cache Expired"事件吗?

我有一个像这样缓存的简单对象:_myCache.Add(someKey,someObj,policy);_myCache声明为ObjectCache(但通过DI作为MemoryCache.Default注入(inject)),someObj是我正在添加的对象,policy是一个CacheItemPolicy。如果我有这样的CacheItemPolicy:varpolicy=newCacheItemPolicy{Priority=CacheItemPriority.Default,SlidingExpiration=TimeSpan.FromHours(1)};表示1小时后过期。很酷。但

Linux drm内存管理(一) 浅谈TTM与GEM,为什么我们需要TTM和GEM?

@[TOC](Linuxdrm内存管理(一)为什么我们需要TTM和GEM?)系列文章(更新中):Linuxdrm内存管理(二)TTM内存管理基础概念前言  目前Kernel中DRM中GPU的VRAM(GPU片上显存)的管理框架是有GEM和TTM,其中TTM早于GEM出现,GEM的出现是为了解决TTM复杂的使用方法,将大部分的VRAM管理实现逻辑交由厂商实现。正文  如果你看了何总的GEM相关的博客,我这里额外补充一点我了解到的知识点,我们都知道了内核层的GEM指向或者说包含一片内存,应用层只能获取到GEM的handle,但是可以通过mmap获取到内核层GEM所指向的内存,从而实现CPU读写。 

c# - 在我的解决方案资源管理器中,那些挂锁和加号是什么意思?

我认为它与TeamFoundationService有关,但这是什么意思? 最佳答案 锁表示该项目已checkin,+表示该项目的添加操作正在等待。您可以看到TFSIconsonMSDN的完整列表. 关于c#-在我的解决方案资源管理器中,那些挂锁和加号是什么意思?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/15392904/

c# - Linq-to-SQL 中的 SubmitChanges 和 Entity Framework 中的 SaveChanges 之间的技术区别是什么?

Linq-to-SQL中的SubmitChanges和EntityFramework中的SaveChanges在技术上有什么区别?我们知道SubmitChanges是DataContext类的一个概念,而SaveChanges是ObjectContext的一个方法。还有其他区别吗?谢谢 最佳答案 来自MSDN:SaveChanges在事务中运行。如果无法保留任何脏的ObjectStateEntry对象,SaveChanges将回滚该事务并抛出异常SubmitChanges启动事务,如果在执行SubmitChanges时发生异常,则将

c# - 当您是公司中特定技术的唯一开发人员时,您如何成长为开发人员?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion我不是唯一的程序员,但我是唯一的.NET开发人员,其他人都使用Perl、ExtJS和相关技术。我主要是自学,大量使用Codeproject来学习新技术。我公司没有专门了解.NET的导师,我不确定类(class)、在线教程、书籍或其他一些途径是否能最有效地帮助我成为更好的开发人员。乐观地说,我的目标是成为一名能够管理我们雇用的下一位.NET开发人员的开发人员,或者至少能够与他/她很好地集成。