小编Rab*_*820的帖子

为什么Bootstrap需要jQuery?

我已多次搜索这个问题,但从未找到满意的答案.大多数答案似乎只是说" 是的,Bootstrap插件确实需要jQuery "或" 是的,如果不使用插件,你可以在没有jQuery的情况下使用BS ".Bootstrap对jQuery的依赖(如他们的快速入门所述)让我觉得这是一个糟糕的设计决策,至少有以下原因:

  1. jQuery是一个庞大而庞大的框架,现在任何使用BS插件的网站都必须下载它.当然,BS用户可以使用超薄/缩小的构建(除非他们想使用jQuery AJAX),但即使是那些为除了Bootstrap之外的任何东西都不能使用的库添加非显着的加载时间.
  2. jQuery总体上似乎最近失宠,因为像Angular和React这样的框架越来越受欢迎(参见StackOverflow趋势).我知道老了!=糟糕,jQuery在网络上几乎无处不在,但为什么BS开发人员选择依赖一个已经过去十年的旧框架?
  3. 简单地要求<script>在BS之前编写jQuery 不允许使用现代捆绑器(如Webpack和SystemJS)进行非常清晰的依赖性解析.同样,他们为什么不使用某种基于模块的依赖?
  4. 但最重要的是,在我看来:为什么BS开发人员选择完全依赖于JS框架?在这个符合标准的浏览器的美好时代,jQuery的大部分功能现在都可以使用vanilla HTML/CSS/JS来完成.我们都知道,在创建任何类型的软件包/库时,我们应该尽可能地尝试删除其他依赖项,因为用户需要该软件包而不是其他一些额外的漏洞.

那么,有没有什么理由说BS开发人员选择依赖jQuery,尽管如此?我可能只是在他们的GitHub页面上直接向BS开发人员询问了一个问题,但我希望未来的googlers可以通过这些问题更容易理解这个问题.

更新:根据Bootstrap文档,jQuery依赖项将在"适度范围的v5版本"中删除,所以希望它将在2019年初到达.

javascript jquery javascript-framework twitter-bootstrap

18
推荐指数
1
解决办法
6164
查看次数

Unity中的enabled,isActiveAndEnabled和activeInHierarchy之间的区别

我无法相信这个问题还没有在某个地方被问过; 一个相当彻底的谷歌搜索没有结果.Unity文档说明了这个Behaviour.isActiveAndEnabled领域:

是否已启用行为已启用.
启用行为时为true,禁用时为false.

它说的是Behaviour.enabled:

已启用行为已更新,已禁用行为.
这显示为行为检查器中的小复选框.

因此,有一篇文章详细阐述了"启用"意味着什么比另一个更重要.据我所知,这些字段在完全相同的条件下是真/假的!那么区别是什么呢?你什么时候用一个而不是另一个?非常感谢澄清!

c# unity-game-engine unity5

14
推荐指数
2
解决办法
6065
查看次数

C#如何与.NET Framework分离?

对于.NET框架,我不是新手,我一直在编写利用它多年的C#软件.然而,前几天我想到了一个想法...... C#如何与.NET框架分离,并且关键字lockobject?像object derp = new object();解析一样的语句System.Object derp = new System.Object();,但System.Object被定义为.NET的一部分,不是吗?即使它是在mscorlib中定义的,这也意味着语言功能依赖于库.对于lock解析调用Monitor.Enter()和的语句也是如此Montior.Exit().显然,如果不使用.NET功能编写任何非玩具程序将是愚蠢/不可能的,但是语言如何依赖于主要使用该语言编写的库?

.net c#

8
推荐指数
1
解决办法
234
查看次数

C# Var 与 Target 类型的 new

C#9几天前正式发布。一项新的语言功能是“目标类型的新表达式”,它的使用感觉与var. 比较以下声明,我很好奇哪个性能更高(如果有的话),以及不同上下文应首选哪种语法。

var person = new Person()Person person = new()

对于收藏:

var people = new[] {
    new Person(),
    new Person(),
    new Person(),
}
Run Code Online (Sandbox Code Playgroud)

var people = new Person[] {
    new(),
    new(),
    new(),
}
Run Code Online (Sandbox Code Playgroud)

c# var variable-declaration

7
推荐指数
1
解决办法
1941
查看次数

具有默认释放变量的VSTS JSON变量替换

TL; DR

有没有我可以用任何方式JSON变量替换默认释放变量在VSTS?

描述

使用VSTS,我可以使用JSON变量替换appsettings.json在发布时设置文件中的值.例如,使用如下所示的appsettings.json文件:

{    
  "ConnectionStrings": {
    "DM_ADJ": "placeholder",
    "DM_SALES": "placeholder"
  },
  // And so on.  Placeholders get replaced
}
Run Code Online (Sandbox Code Playgroud)

我可以在VSTS中定义一个Release变量ConnectionStrings.DM_ADJ,并且我在那里提供的值将"placeholder"在相应的JSON行中替换.

现在,我还想在我的应用程序配置中使用一些默认的Release变量.例如,有一些名为Release.DefinitionName和的默认Release变量Release.DefinitionId.我认为我可以将它们替换为appsettings.json如下所示的配置部分,但不幸的是,当Release完成时,"placeholder"字符串不会被替换.我错过了什么吗?

{
  "Release": {
    "DefinitionName": "placeholder",
    "DefinitionId": "placeholder",
  }
  // And so on.  Placeholders do not get replaced
}
Run Code Online (Sandbox Code Playgroud)

json appsettings azure-devops azure-pipelines-release-pipeline

6
推荐指数
2
解决办法
5924
查看次数

何时使用 C#9 记录

C#9几天前正式宣布,该语言最大的新增功能之一是使用data关键字的新“记录”类型。这个新功能感觉与C#7.2的只读结构非常相似,所以我很困惑为什么要使用一个而不是另一个。具体来说:

  1. 为什么要使用 a data structover a readonly struct?这些不完全一样吗?
  2. 可以声明一个data readonly struct吗?那不会是多余的吗?
  3. 为什么要使用 a data classover a readonly struct?它们都实现了不变性和值类型相等,所以这只是一个性能问题(堆分配与作为参数传递时的复制)?

加分点:我可以使用一些帮助来理解为什么“记录更改了简单成员声明......意味着什么的默认值”?我已经使用了足够多的企业代码来预测具有数十个成员的巨型数据类,没有经验的程序员会看到string FirstName;并且不会考虑向上滚动以查找data关键字,假设它是一个私有字段,而不是一个可公开访问的属性!

c# language-design immutability c#-9.0 c#-record-type

6
推荐指数
0
解决办法
2932
查看次数

IEnumerable Expression-Bodied Member C#

我在C#中有一个get-only属性返回一个IEnumerable.如果该属性只会产生一次,那么我可以像这样定义我的属性:

public IEnumerable Derp {
    get { yield return new SomeObject(); }
}
Run Code Online (Sandbox Code Playgroud)

但是我如何使用C#6表达身体的成员呢?下面的方法做工作:

// These definitions do NOT work
public IEnumerable Derp => yield return new SomeObject();
public IEnumerable Derp => yield new SomeObject();
Run Code Online (Sandbox Code Playgroud)

返回编译器错误CS0103:"当前上下文中不存在名称'yield'".yield在C#6中,即使是表达身体的成员也是可能的吗?在C#7怎么样?

我知道只返回一次的IEnumerable成员看起来很臭,但我主要只是好奇.我在尝试使用NUnit TestCaseSourceAPI 时遇到了这种情况,试图提供一种只产生一个测试用例的方法.我还可以看到这与Unity开发人员相关,他们希望定义一个使用StartCoroutine()调用的表达式身体方法.

无论如何,提前感谢您的想法!

c# ienumerable yield-return c#-6.0 c#-7.0

5
推荐指数
1
解决办法
472
查看次数

Editorconfig Const/Enum 设置在 Visual Studio 中不起作用

我的根目录中有一个 .editorconfig 文件,适用于我的所有 Visual Studio 项目。它包含以下规则:

# Const field naming rules
dotnet_naming_symbols.const_fields.applicable_accessibilities = *
dotnet_naming_symbols.const_fields.required_modifiers = const
dotnet_naming_rule.const_fields.symbols = const_fields
dotnet_naming_rule.const_fields.style = all_upper
dotnet_naming_rule.const_fields.severity = warning

# Enum naming rules
dotnet_naming_symbols.enums.applicable_kinds = enum
dotnet_naming_rule.enums.symbols = enums
dotnet_naming_rule.enums.style = pascal_case
dotnet_naming_rule.enums.severity = warning

# Naming Styles
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_naming_style.all_upper.capitalization = all_upper
Run Code Online (Sandbox Code Playgroud)

根据EditorConfig 文档

EditorConfig 文件从上到下读取,最接近的 EditorConfig 文件最后读取。匹配的 EditorConfig 部分中的属性按照读取的顺序应用,因此较近文件中的属性优先。

根据这个推理,我的enums规则应该“优先于”我的const_fields规则。但是,以下枚举声明继续向我发出警告:

public enum AggregationMode {
    Simultaneous,
    Sequential,
}
Run Code Online (Sandbox Code Playgroud)

曰:Warning IDE1006 Naming rule violation: These words …

c# enums constants visual-studio editorconfig

5
推荐指数
0
解决办法
1375
查看次数

Xamarin Android.App.DialogFragment已过时

TL; DR有人知道Android.App.DialogFragmentXamarin 为什么过时了,更重要的是,推荐使用什么类?

更多信息:

我在Xamarin.Android应用中收到以下警告:

警告CS0618'DialogFragment'已过时:'此类在此android平台中已过时'警告CS0618'Activity.FragmentManager'已过时:'不建议使用'

从以下代码中:

using Android.App;

void onClick(int pos) {
    DialogFragment newFragment = new UsernameDialogFragment(_scans[pos]);
    newFragment.Show(_activity.FragmentManager, "dialog");
}

public class UsernameDialogFragment : DialogFragment {
    public override Dialog OnCreateDialog(Bundle savedInstanceState) {
        var builder = new AlertDialog.Builder(Activity);
        // Build the dialog...
        return builder.Create();
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我使用的是Android.App.DialogFrament类,而不是中的类Android.Support.V4.App。该onClick方法是的一部分RecyclerView.Adapter

对于Xamarin这样的问题,令我感到沮丧的是,几乎没有足够的文档。IntelliSense警告不建议使用其他API,除非Google搜索“ DialogFrament已过时”,否则与Xamarin相关的内容均不存在,除非此旧论坛帖子建议使用过时的API,最糟糕的是,DialogFragment API文档甚至都没有表明班级已经过时了!

一些版本信息:

Xamarin.Forms NuGet:v3.1.0.697729
Visual Studio 2017:v15.8.1
目标框架:Android 9.0(P)
最低Android版本:Android 5.0(API级别21-棒棒糖)
目标Android版本:Android 9.0(API级别27-Oreo) )

android xamarin.android android-fragments xamarin

5
推荐指数
1
解决办法
2018
查看次数

MSBuild 项可以使用目标设置的属性吗?

我试图使用 MSBuild 实现以下目标:我的主项目 ( MyProject.csproj) 应包含几个Reference项目,但其中一个项目的路径是由目标设置的属性Reference值。SomeProperty具体来说, 的值SomeProperty是使用ReadLinesFromFileTask.

以下是 的高级结构MyProject.csproj

<Project>
  <Target Name="CreateSomeProperty">
    <!-- Tasks that ultimately set $(SomeProperty) by parsing a value with ReadLinesFromFileTask -->
  </Target>
  <ItemGroup>
    <Reference Include="$(SomeProperty)" />
    <!-- Other Reference items -->
  </ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这个设置不起作用。Dependencies我在 VS 解决方案资源管理器中的节点下看到那些黄色小三角形MyProject,因为该项目正在寻找缺少字符的路径中的 DLL。The type or namespace name could not be found同样,当我构建项目时,即使我仍然看到Message目标内任务的输出,我也会收到一堆错误。据推测,在评估阶段加载项目失败CreatePathProperty后,目标正在执行阶段运行。Reference

有没有办法让这样的设置有效?我尝试过在元素BeforeTargets="Build"中设置Target,然后InitialTargets="CreateSomeProperty"在 …

c# msbuild csproj msbuild-task visual-studio

5
推荐指数
1
解决办法
2287
查看次数