小编Gre*_*reg的帖子

为什么在创建const字符串变量时不能使用String.Empty?

我经常使用String.Empty占位符,相当于"".所以我的问题,为什么不const喜欢String.Empty?他们编译相同.

// Good
private const string example = "";

// Bad
private const string example = String.Empty;
Run Code Online (Sandbox Code Playgroud)

是什么String.Empty让它无法与a一起使用const.

c#

4
推荐指数
1
解决办法
185
查看次数

Android Manifest文件:App支持平板电脑,但在市场上被标记为"不兼容"?

我一直在论坛上阅读其他几个用于处理Manifest文件的东西.虽然我找到了答案; 它仍然没有解决我的特定问题.我的应用程序专为任何手机或平板电脑设计,但谷歌的Play商店说"不兼容".我正在尝试将应用程序提供给手机和平板电脑(手机或只是wifi).任何帮助都会很棒,谢谢你提前.我明显遗漏了这个清单文件中的内容.

这些是请求权限:

android.permission.INTERNET, 
android.permission.CALL_PHONE, 
android.permission.SEND_SMS, 
android.permission.ACCESS_NETWORK_STATE, 
android.permission.CHANGE_NETWORK_STATE, 
android.permission.ACCESS_WIFI_STATE, 
android.permission.CHANGE_WIFI_STATE, 
android.permission.ACCESS_COARSE_LOCATION, 
android.permission.READ_PHONE_STATE
Run Code Online (Sandbox Code Playgroud)

特征:

android.hardware.location, 
android.hardware.location, 
android.hardware.location.network, 
android.hardware.touchscreen, 
android.hardware.wifi
Run Code Online (Sandbox Code Playgroud)

这是一个奇怪的错误; 加上它似乎要求的方法无效.

android tablet android-manifest google-play android-permissions

3
推荐指数
1
解决办法
1845
查看次数

如何将地址解析为其各个组件?

我的任务是构建一个解析特定网页的解析器,以便我们的员工可以将他们的用户数据批量导入我们公司的网站.

我已经利用HtmlAgilityPack来解析页面,我已将其关联table rowtable data被推送到我Map班级的属性中.

然而,一让我感到很悲伤.由于各种各样的原因,地址栏是我身边的荆棘.

样本数据:

6313 SW 203rd Ave <br> Portland, OR 97224
16600 Lomita Way <br> El Dorado Hills, CA 95762
PO Box #42 <br> Hampton Bays, NY 11946
Run Code Online (Sandbox Code Playgroud)

这些地址中的每一个都是这样包装的(显然地址可能因我们导入用户的客户而异):

<tr>
     <td> 6313 SW 203rd Ave <br> Portland, OR 97224 </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我正在尝试实现一个正则表达式将其拆分到适当的区域,因此可以将其分配给相关属性:

public string Unit { get; set; }
public string Street { get; set; }
public string City { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# regex parsing html-agility-pack

3
推荐指数
1
解决办法
4370
查看次数

哇,什么是TryParse

我有一个包含特定整数值的Session,它们使用给定的控件进行索引.通常,以下方法可以正常工作:

int value;
int.TryParse(Session["Key"].ToString(), out value);
Run Code Online (Sandbox Code Playgroud)

但是,我确实需要考虑null.其中,如果string失败则默认输出将返回a null.除了我注意到它int.TryParse不起作用:

int? value = null;
int.TryParse(Session["Key"].ToString(), out value);
Run Code Online (Sandbox Code Playgroud)

那么如何尝试解析,如果失败则导致null?

我发现了这个问题,微软开发者网络指示:

当此方法返回时,如果转换成功,则包含等效于s中包含的数字的有符号整数值;如果转换失败,则包含零.如果string参数为null或String.Empty,格式不正确,或者表示小于最小值或大于最大值的数字,则转换失败.此参数未初始化传递.

明确指出,如果int.TryParse失败,整数将保持零值. 在我的使用实例中,零可以是有效值.所以我需要null,任何想法?

c# asp.net asp.net-mvc webforms

3
推荐指数
2
解决办法
502
查看次数

什么在演员,是不同的

这可能是一个微不足道的问题,我已经看到了Cast的几种不同变体.

  • 有什么不同?
  • 一个比另一个好(性能)?
  • 这只是一个偏好问题,代码易读性?

示例一:

command.ExecuteScalar() as string;
Run Code Online (Sandbox Code Playgroud)

示例二:

(string)command.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

两者都会产生ExecuteScalar()不同的影响,所以问题是与数据库交互时是否比另一个更理想?

c#

2
推荐指数
1
解决办法
77
查看次数

一点点的字符串演员

更新:


当数据库通过标量返回值时,它将始终为object.因此,当返回值时,您应该有一个先入为主的概念,即类型是什么.ToString();当你有一个SELECT传递两个参数的时候,你为什么要使用它?

好像它不存在它总会抛出一个null.所以在我的重构中我相信这as将是正确的方法.因为ToString()会抛出一个错误---那么cast它的形式是什么?


我有一些我正在维护的代码,但是在我的重构中,我遇到了一个ToString()附加的代码ExecuteScalar.我的问题是,使用ToString()等同于:

(string)command.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

或者它代表这个:

command.ExecuteScalar() as string;
Run Code Online (Sandbox Code Playgroud)

显然,as string优雅地失败,cast (string)实际上会陷入困境InvalidCastException.所以当你打电话时:

command.ExecuteScalar().ToString();
Run Code Online (Sandbox Code Playgroud)

casting它试图采用哪种方法?

c# sql

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

匿名类型和空

我们公司利用一项服务,通过Rest Api为开发人员提供访问其应用程序的权限.因此,基于此应用程序生成的内容,我构建了一个数据模型来表示可扩展标记语言(XML),以便于修改.

但是,API会为数据生成两个单独的区域:

var responses = submission.Sections.SelectMany(obj =>
     obj.Screens.Screen.Responses.Response.Select(response => 
     new { response.Label, response.Value, response.Type })).ToList();
Run Code Online (Sandbox Code Playgroud)
var responses = submission.Sections.SelectMany(obj =>
     obj.Screens.Screen.Responses.Responses.Response.Select(response => 
     new { response.Label, response.Value, response.Type })).ToList();
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,当我构建内容时Responses.Response,大部分数据都在这里,但有时它会利用Responses.Responses.Response.有没有办法对数据进行初步预测?这样我可以测试null偶尔抛出的那个Responses.Response

这样我就可以沿着这些方向做点什么:

if(obj != null)
{
     // Responses.Response
}
else
{
     //Responses.Responses.Response
}
Run Code Online (Sandbox Code Playgroud)

Linq甚至可以做到这一点吗?问题是,因为response.Valuenull在某些情况下,它抛出一个Null Argument Exception.

c# xml linq anonymous-types

2
推荐指数
1
解决办法
230
查看次数

外部工具 Visual Studio

我创建了一个要运行的应用程序,但是从 Visual Studio 的应用程序构建了一个外部工具。直到 15.4.0 应用程序运行良好,但他们修改了注册表。根据 Microsoft 的更改,外部工具保存在此子项下:

SOFTWARE\Microsoft\VisualStudio\14.0_Config\External Tools

当您观察密钥时,您会清楚地看到 Visual Studio 中包含的工具、Guid、错误查找和其他几个文件夹(子密钥)。但问题是,如果您在 Visual Studio 中手动创建工具,密钥信息将直接转储到根外部工具密钥。

因此,如果我执行以下任一方法:

var user = RegistryKey.OpenBaseKey(RegistryHive.CurrenUser, RegistryView.Default);
var tools = user.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio\14.0_Config\External Tools", true);
var path = Environment.GetCommandLineArgs()[0];

tools.SetValue("ToolArg", "$(ItemPath)");
tools.SetValue("ToolCmd", path);
tools.SetValue("ToolDir", String.Empty);
tools.SetValue("ToolOpt", 0x12);
tools.SetValue("ToolsSourceKey", String.Empty);
tools.SetValue("ToolTitle", "My Tool");
Run Code Online (Sandbox Code Playgroud)
    var user = RegistryKey.OpenBaseKey(RegistryHive.CurrenUser, RegistryView.Default);
    var tools = user.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio\14.0_Config\External Tools", true);
var sub = tools.CreateSubKey("MyTool");
    var path = Environment.GetCommandLineArgs()[0];

sub.SetValue("ToolArg", "$(ItemPath)");
sub.SetValue("ToolCmd", path);
sub.SetValue("ToolDir", String.Empty);
sub.SetValue("ToolOpt", 0x12);
sub.SetValue("ToolsSourceKey", String.Empty);
sub.SetValue("ToolTitle", "My Tool");
Run Code Online (Sandbox Code Playgroud)

该工具不会出现在列表或工具栏中。Visual Studio …

.net c# registry visual-studio

2
推荐指数
1
解决办法
520
查看次数

图像的奥秘

所以我正在开发一个模型视图控制器(MVC)项目.由于规模和复杂性,我正在努力确保组织.我成功地遇到了一个独特的困境,一个让我很难过的困境.我的问题来自我正在整合到我的网站的Jquery Rotator.

My Solution Explorer:

  • 内容:这种特殊的文件夹中包含三个直接的子文件夹 Images,ScriptsStylesheets.

这三个子文件夹包含更具体和更细致的细节,一个例子是Scripts包含另一个Rotator为此jQuery实现调用的文件夹.

所以这种困境发生在View中.

视图中的示例:

<div class = "banner-style">
     <div id = "Infinite-Banner">
          <div class = "banner-container">
                <div class = "slides">
                      <img src = "~/Content/Images/Banner/Slides/One.jpg">
                      <img src = "~/Content/Images/Banner/Slides/Two.jpg">
                </div>
          </div>
     </div>
</div>
Run Code Online (Sandbox Code Playgroud)

因此,在此结构中,它似乎不会加载图像.虽然它已正确映射到目录.但是,如果您使用上面相同的结构,但将img部分更改为:

<div class = "slide-one" />
<div class = "slide-two" />
Run Code Online (Sandbox Code Playgroud)

然后在相关的样式表中,只需background: url(~/Content/Images/Banner/Slides/One.jpg);为 …

c# asp.net asp.net-mvc asp.net-mvc-4

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

将C#对象映射到数据库模式

我正在用C#开发一个客户端 - 服务器桌面应用程序系统.客户端只是一个瘦客户端,可以显示服务器告诉它的任何内容.服务器直接与本地数据库通信,本地数据库用于存储各种系统的元数据.每个系统都有自己的表,其结构对于该系统是唯一的.

我试图理解如何在没有"硬编码"任何内容的情况下告诉桌面应用程序数据库的结构,如果这有意义的话.我相信我需要研究对象关系映射,但我不太清楚从哪里开始,因为我以前从未接受过这种复杂性的项目.我的想法是我的服务器配置以某种方式定义了这个映射,并且它可能是可扩展的,因此我可以在将来为更多系统添加更多映射,或者可能更改映射.

我怎么看这个系统工作是这样的:

客户端上的用户将包含元数据的文件上载到服务器.服务器将确定此文件所针对的系统类型,然后解析该文件以提取元数据,并将其输入数据库.我最初设想这种情况的方式是我将有一个通用的抽象类/接口,需要为每个系统类型派生.然后,派生类将实现特定于该系统类型的解析函数,以便它可以从文件中提取元数据.但问题是我无法将提取的数据输入数据库,因为服务器不知道派生类的底层结构.

谁能指出我正确的方向?我发现了NHibernate,这听起来像我可能需要的,但我不是百分百肯定.正如我先前所说,问题的一部分是我对这些概念中的一些概念没有完全理解.任何人都可以推荐一些可以帮助我理解对象关系映射器(ORM)的在线资源,特别是它与.Net Framework有何关联

c# database orm

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

查找特定文件类型

我在使用时遇到了一个奇怪的问题System.IO.当您遍历目录以查找类型为File(没有扩展名)的文件时,不会检测到该文件.

// Successful:
var files = DirectoryInfo(server.Path).GetFiles("sitemap*.*);
var contents = Directory.GetFiles(server.Path, "sitemap*.*", ...);
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,上面的代码就足够了,但是如果你有其他类型名称相同的类型,它们也会被收集.

当你只想要的时候会遇到我们的问题sitemap.file.

// Invalid Code:
var files = DirectoryInfo(server.Path).GetFiles("sitemap*.file);
var contents = Directory.GetFiles(server.Path, "sitemap*.file", ...);
var examples = DirectoryInfo(server.Path).GetFiles("sitemap*);
Run Code Online (Sandbox Code Playgroud)

该数组为空,它找不到任何原始.file扩展文件.我假设问题发生,因为它实际上没有扩展名.

你如何规避这种限制?

更新: 我知道我可以沿着这些方向做一些事情FileInfo[],但希望找到一个更简单的方法然后迭代,然后比较:

var files = DirectoryInfo(server.Path).GetFiles("sitemap*.*);
foreach(var file in files)
     if(file.Extension != ".gz" && file.Extension != ".xml")
     {
          // Do something with File.
     }
Run Code Online (Sandbox Code Playgroud)

特别是如果您的目录中有各种各样的扩展名.你会认为它会解释这种类型,或缺乏.

多 空数组

c#

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

具有相同表数据的实体

在我详细说明问题之前,我很清楚数据库不是按常规设计的.遗憾的是,由于它是如何集成的,我无法更改这个特定的数据库,所以我有一个潜在的解决方案,但这几个月都不会实现.与此同时,我需要解决以下问题:

问题是我需要建立一个实体,这将代表我们的Accounts.但问题是,我们的数据库实现了以下结构:

  • 发票表
  • 非发票表

我的实体代表这些表上完全相同的数据,相同的列名,在所有条件下都是重复的,除了一个是开票,而另一个代表非开票的客户.但由于它不是一个表,并且有一个标志表示已开票和非开票,我的实体如何链接到这两个表?

由于两个表都代表不同的名称,因此我无法使用[Table("...")]或自动映射功能.我讨厌提出这样的问题,但我找不到任何关于如何处理这样一个问题的文件.

c# asp.net-mvc entity-framework

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