我似乎记得读过一些关于结构通过C#在CLR中实现接口有什么不好的东西,但我似乎无法找到任何关于它的东西.这不好吗?这样做会产生意想不到的后果吗?
public interface Foo { Bar GetBar(); }
public struct Fubar : Foo { public Bar GetBar() { return new Bar(); } }
Run Code Online (Sandbox Code Playgroud) 我已经看到了类似的问题(1,2和3),但我不从他们那里得到一个妥善的解决办法.
除了特定的文件类型,我需要忽略特定文件夹下的所有文件.该文件夹是根路径的子目录.让我命名文件夹Resources.由于我不想让事情复杂化,让我忽略所有文件夹下的文件Resources.
这是最常见的解决方案(在所有重复的问题中)
# Ignore everything
*
# Don't ignore directories, so we can recurse into them
!*/
# Don't ignore .gitignore
!.gitignore
# Now exclude our type
!*.foo
Run Code Online (Sandbox Code Playgroud)
此解决方案的问题是它停止跟踪新添加的文件(因为*忽略所有文件).我不想继续排除每种文件类型.我想要正常的行为,如果添加任何新文件,git status显示它.
我终于在这里找到了解决方案.解决方案是.gitignore在Resources文件夹中添加另一个文件.这工作正常.
我可以用一个忽略文件实现相同的目标吗?我发现在不同的目录中有很多忽略文件有点笨拙.
这就是我想要实现的目标:
# Ignore everything under Resources folder, not elsewhere
Resources
# Don't ignore directories, so we can recurse into them
!*Resources/
# Now exclude our …Run Code Online (Sandbox Code Playgroud) 我在C#中有一本字典
Dictionary<Person, int>
Run Code Online (Sandbox Code Playgroud)
我想那种字典到位相对于键(在Person类的字段).我该怎么做?互联网上的每个可用帮助都是列表,没有特定的字典排序示例.任何帮助将非常感谢!
我开发的工具需要将访问权限"完全控制"授予由它创建的文件.需要从所有Windows帐户甚至可能的未来帐户中读取,修改和删除它.这可以实现吗?
我知道我可以尝试使用SPECIFIC_USER:
FileSystemAccessRule rule = new FileSystemAccessRule(SPECIFIC_USER, FileSystemRights.FullControl, AccessControlType.Allow);
FileSecurity fSecurity = File.GetAccessControl(filePath);
fSecurity.SetAccessRule(rule);
File.SetAccessControl(filePath, fSecurity);
Run Code Online (Sandbox Code Playgroud)
但是如何将其授予所有用户?甚至可能的未来帐户?如果后一部分不可能,如何进行第一项要求?
谢谢.
编辑:
这是适合我的代码.取自回答者的链接.
private bool GrantAccess(string fullPath)
{
DirectoryInfo dInfo = new DirectoryInfo(fullPath);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(
new SecurityIdentifier(WellKnownSidType.WorldSid, null),
FileSystemRights.FullControl,
InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit,
PropagationFlags.NoPropagateInherit,
AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
return true;
}
Run Code Online (Sandbox Code Playgroud)
注意PropagationFlags.NoPropagateInherit哪个是必需的(在链接的最后面提到).它确实为未来的账户授予特权.
今天我在考虑宣布这个:
private delegate double ChangeListAction(string param1, int number);
Run Code Online (Sandbox Code Playgroud)
但为什么不用这个:
private Func<string, int, double> ChangeListAction;
Run Code Online (Sandbox Code Playgroud)
或者如果ChangeListAction没有返回值,我可以使用:
private Action<string,int> ChangeListAction;
Run Code Online (Sandbox Code Playgroud)
那么使用delegate关键字声明委托的优势在哪里?
是因为.NET 1.1,随着.NET 2.0的出现Action<T>和.NET 3.5的出现Func<T>?
我正在尝试根据用户选择的数量选择不同的产品价格.这是我正在处理的查询(它有语法错误):
select id,
(SELECT
IF(qty_1<='23',price,1)
ELSEIF(('23'>qty_1 && qty_2<='23'),price_2,1)
ELSEIF(('23'>qty_2 && qty_3<='23'),price_3,1)
ELSEIF('23'>qty_3,price_4,1)
END IF) as total
from product;
Run Code Online (Sandbox Code Playgroud) 有没有办法在VS中选择多个非相邻(完全独立)的文本?我可以通过按住Ctrl键单独选择文本,在MS Word中执行此操作,如下所示:

我的版本是11.
编辑:我不是在谈论Alt+Select块选择.另外我想看看Notepad ++中是否存在一种技术.
text-editor selection multi-select visual-studio visual-studio-2012
我正在尝试实体框架的Code First演练(http://blogs.msdn.com/b/adonet/archive/2011/09/28/ef-4-2-code-first-walkthrough.aspx).
我有最新的SQL Server Express,当我通过命令行(sqllocaldb info)检查我的版本时:我看到localdbApp1和v11.0.当我尝试通过一些小的调整来运行演练时,我得到一个无法连接错误.
我的app.config看起来像这样:
<parameter value="Server=(LocalDB)\v11.0; Integrated Security=True; MultipleActiveResultSets=True" />
Run Code Online (Sandbox Code Playgroud)
我写了一个简单的连接测试,如下所示,代码返回相同的SQL连接错误((提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)).
new System.Data.SqlClient.SqlConnection("Data Source=(LocalDB)\v11.0; Integrated Security=True; MultipleActiveResultSets=True").Open();
Run Code Online (Sandbox Code Playgroud)
我试着更换"Data Source=..."用"Server=...",但无济于事那里.
任何想法连接字符串应该是什么?
c# ×7
.net ×1
action ×1
arrays ×1
delegates ×1
dictionary ×1
directory ×1
func ×1
git ×1
gitignore ×1
if-statement ×1
interface ×1
json ×1
localdb ×1
multi-select ×1
mysql ×1
permissions ×1
selection ×1
sorting ×1
sql-server ×1
struct ×1
subdirectory ×1
text-editor ×1
winforms ×1