简单的例子 - 你有一个返回IEnumerable的方法或属性,调用者在foreach()循环中迭代它.你应该总是在你的IEnumerable方法中使用'yield return'吗?有没有理由不去?虽然我明白它可能并不总是有必要,甚至"更好"(例如,它可能是一个非常小的集合),但有没有理由主动避免这样做?
让我思考这个问题的代码是我写的一个函数非常类似于这个帖子中接受的答案 - 我如何遍历日期范围?
使用Umbraco 4.6+,有没有办法在C#中检索特定doctype的所有节点?我一直在寻找umbraco.NodeFactory命名空间,但还没有发现任何有用的东西.
可能重复:
编译时和运行时转换c#
据我所知,以下代码将始终编译,并且还会在运行时始终通过抛出一个失败InvalidCastException.
例:
public class Post { }
public class Question : Post { }
public class Answer : Post
{
public void Fail()
{
Post p = new Post();
Question q = (Question)p; // This will throw an InvalidCastException
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是......
我很难理解这一点.请考虑以下示例:
protected void Page_Load(object sender, EventArgs e)
{
// No surprise that this works
Int16 firstTest = Convert.ToInt16(0);
int firstTest2 = (int)firstTest;
// This also works
object secondTest = 0;
int secondTest2 = (int)secondTest;
// But this fails!
object thirdTest = Convert.ToInt16(0);
int thirdtest2 = (int)thirdTest; // It blows up on this line.
}
Run Code Online (Sandbox Code Playgroud)
我在运行时获得的具体错误是在Visual Studio中的Specified cast is not valid. If I QuickWatch (int)thirdTest,我得到的值为Cannot unbox 'thirdTest' as a 'int'.
到底发生了什么事?
假设SQL Server 2005/2008具有大量数据库.有没有办法快速判断哪个数据库(如果有)附加到特定的.mdf文件?
我们已经删除了一些数据库,并希望清理一些挥之不去的.mdf来清理服务器上的空间.目前,我所知道的唯一方法是在Management Studio中逐个查看每个数据库的属性,并列出它们附加到的文件.寻找比这更有效的东西,如果有的话.
我有一个SQL Server 2000盒子,里面有几个数据库,其中一些可能已经不再使用了.我想首先将它们脱机,然后将它们全部一起删除.问题是我不知道如何分辨哪些仍然被积极使用(外部来源可能连接也可能不连接,使用它们等)
有没有办法告诉每个数据库上次活动的时间?我知道SQL Server会保留sys表中某些内容的记录,但我不确定那里存储的是什么.如果在那里找不到我需要的东西,那么我可以设置一些东西来跟踪这一点的用法吗?理想情况下,我希望能够"达到这个时间点",但"从这一点开始"将比没有好.谢谢.
ASP.NET 4.0 Webforms项目.我的代码隐藏中有以下内容.
public partial class _Default : System.Web.UI.Page
{
private string testVar;
protected override void OnInit(EventArgs e)
{
string testVar = "test";
}
protected void Page_Load(object sender, EventArgs e)
{
var whatsTheValue = testVar;
}
}
Run Code Online (Sandbox Code Playgroud)
我在每个方法中设置一个断点.当局部变量testVar,被设置在OnInit,如果我快看实例变量,它也有值"测试".当我玩到时Page_Load,实例变量的值是null.
我偶然碰到了这个,但这种行为让我感到困惑.我真的很惊讶它编译.我本来希望看到有关两个变量具有相同名称的警告.话虽如此,对我来说更令人困惑的是,实例变量在OnInit中获取赋值,但是当退出该方法时立即丢失它.
有人可以向我解释这种行为吗?
根据一些资源,例如这个,
在触发器上下文中执行的查询会自动包装在事务中。如果触发代码中有任何分布式查询,事务将自动提升为分布式事务。
简单的问题 - 有没有办法防止这种行为?我正在寻找一种方法来明确阻止触发器中的代码在事务上下文中运行。
我有一个名为Project的LINQ生成类.
我想为生成的属性添加一些属性,因此我使用MetadataType属性定义了一个部分类.
[MetadataType(typeof(Project_HiddenProps))]
public partial class Project : IProject
{
// There are also a few additional properties defined here.
}
public class Project_HiddenProps
{
[HiddenColumn]
public System.Guid Id { get; set; }
// Id is an auto-generated property that I've added a custom attribute to
}
Run Code Online (Sandbox Code Playgroud)
后来,我使用反射来尝试获取此属性的属性.
var customAttributes = prop.GetCustomAttributes(false);
Run Code Online (Sandbox Code Playgroud)
但是,我只获得了一个属性类型System.Data.Linq.Mapping.ColumnAttribute.我的HiddenColumn属性未包含在集合中.我的问题是如何使用反射获取这些元数据属性.
任何帮助将不胜感激.
请原谅我可能是一个糟糕的头衔; 我努力用一行文字来解释我想要做的事情.
SQL Server 2005
我有一个名为ItemDataSheets的表,如下所示:
Id ItemId FilePath FileDescription FileType ------------------------------------------------------------------ 1 JOD141 /files/JOD141_a.pdf DataSheet ABC 1 2 JOD141 /files/JOD141_b.pdf DataSheet LMN 1 3 JOD141 /files/JOD141_c.pdf DataSheet XYZ 2 4 JOD141 /files/JOD141_d.pdf DataSheet POI 3 5 JOD141 /files/JOD141_e.pdf DataSheet QWE 3
对于给定的ItemId,我需要为它拥有的每个FileType返回1行.如果它有一个以上的某种文件类型,那么我需要该FileType具有最高Id的行.
所以对于ItemId JOD141,我想回来:
Id ItemId FilePath FileDescription FileType ------------------------------------------------------------------ 2 JOD141 /files/JOD141_b.pdf DataSheet LMN 1 3 JOD141 /files/JOD141_c.pdf DataSheet XYZ 2 5 JOD141 /files/JOD141_e.pdf DataSheet QWE 3
如何从以下列方式设置的表中删除重复项?
unique_ID | worker_ID | date | type_ID
Run Code Online (Sandbox Code Playgroud)
一个worker可以有多个与它们相关联的type_ID,我想删除任何重复的类型.如果有重复,我想删除具有最新条目的类型.
我的 mysql 数据库中有两个相互关联的表:users 和 user_info。users 表包含用户名、密码等,而我的 user_info 表包含用户的基本信息,如姓氏、名字等。我想知道如何在不使用两个 select 语句的情况下显示来自两个表的一行。
它是这样的:(我知道这不是正确的格式。抱歉)
SELECT * FROM users AND user_info WHERE users.user_id == user_info.user_id
Run Code Online (Sandbox Code Playgroud) sql ×7
c# ×6
sql-server ×4
mysql ×2
t-sql ×2
.net ×1
.net-4.0 ×1
api ×1
asp.net ×1
attributes ×1
boxing ×1
c#-4.0 ×1
casting ×1
comments ×1
compilation ×1
exception ×1
ienumerable ×1
mdf ×1
reflection ×1
syntax ×1
umbraco ×1
unboxing ×1
yield-return ×1