小编San*_*ken的帖子

在继承类的构造函数中设置私有属性值

我有一个来自外部库的基类,我无法修改 - 这是相关的部分:

public class BaseClass
{
     List<string> _values;
     public Values { get { return _values; } }
}
Run Code Online (Sandbox Code Playgroud)

我继承BaseClass,我想将_values设置为一个继承自构造函数中的List(T)的类:

public InheritingClass : BaseClass
{
     public InheritingClass():base()
     {
          //set base._values = new InhertingList<string>(); ?
     }
}
Run Code Online (Sandbox Code Playgroud)

在那里设置base._values的最佳方法是什么?有没有办法找到值获取的私有变量,并设置以防将来重命名私有变量?

还有其他方法可以完成我需要做的事情,但是如果我可以做到以下几点,那么在没有设置私有属性值的情况下,实现目标的任何方式都会更快.

c# inheritance

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

ADO实体框架帮助

有一些Linq to SQL的经验我现在正在尝试ADO Entity框架.在Linq to SQL中,我将创建一个Linq to SQL类,将我的表拖过来构建数据上下文.然后我将实例化datacontext类并对datacontext类中的一个属性运行一些lambda.

现在,使用ADO实体框架,我添加了Entity Data Model类,并将表添加到数据模型中.我的实体数据模型类现在有一堆ObjectQuery <>属性,我添加的每个表都有一个属性.

现在我该如何处理这些属性?我怎么称呼他们?有人有代码示例吗?

entity-framework

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

如何编写一个返回动态对象的扩展方法?

我在考虑Regex.Match.Group如何变得动态:

Regex.Match (...).Groups["Foo"]
Run Code Online (Sandbox Code Playgroud)

我想成为:

Regex.Match (...).Groups.Foo
Run Code Online (Sandbox Code Playgroud)

我想过编写一个允许的扩展方法:

Regex.Match (...).Groups().Foo
Run Code Online (Sandbox Code Playgroud)

并尝试以这种方式编写,但这是不允许的(';''静态动态'需要')

public static dynamic DynamicGroups Groups(this Match match)
{
    return new DynamicGroups(match.Groups);
}

public class DynamicGroups : DynamicObject
{
    private readonly GroupCollection _groups;

    public DynamicGroups(GroupCollection groups)
    {
        this._groups = groups;
    }
    public override bool TryGetMember(GetMemberBinder binder, out object result)
    {
        Group g = this._groups[binder.Name];

        if (g == null)
        {
            result = null;
            return false;
        }
        else
        {
            result = g;
            return true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

之前编写的大量其他API dynamic可能更清晰,以这种方式使用.

c# extension-methods dynamic .net-4.0 c#-4.0

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

使用yield或更改算法优化代码

下面的代码有效,但我想使用yield或更改算法来优化代码.

public IEnumerable<Book> GetAuthorWithBookName(string keyword)
{
    var bookAndAuthorList = new List<Book>();
    List<Author> AuthorNameList = getAuthorName(keyword);
    foreach (var author in AuthorNameList)
    {
        XmlNode booksNames = getBook(author);
        XDocument XDOCbooksNames = XDocument.Parse(booksNames.OuterXml);

        var bookNameList = (
            from x1 in XDOCbooksNames.Descendants("Books")
            select x1.Elements("book").Select(g => g.Attribute("name").Value))
            .ToList();
        foreach (var bookName in bookNameList)
        {
            bookAndAuthorList.Add(new Book()
            {
                authorName = author.authorName,
                bookName = bookName
            });
        }
    }
    return bookAndAuthorList;
}

public class Book
{
    public string authorName { get; set; }
    public string bookName { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# linq optimization yield linq-to-xml

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

列表函数的Add方法存在问题

我有一个名为user_class的数据结构(这是一个类),我想从数据库加载所有用户数据.

目前我有

        While SQLreader.Read()
         Hold_user.username = SQLreader(0)
         Hold_user.BlahBlahBlah = SQLreader(1)
         Hold_user.Secret_Password = SQLreader(2)
         return_value.Add(Hold_user)
        End While
Run Code Online (Sandbox Code Playgroud)

其中return_value是user_class的List,hold_user是同一个类的实例.

        Dim return_value As New List(Of user_class)
        Dim Hold_user As New user_class
Run Code Online (Sandbox Code Playgroud)

当while语句循环读取数据时,SQLreader(0),(1)和(2)用新数据更新,但是它们似乎也在更新return_value中保存的存储值....

纠缠是Visual Studio中的一个错误,还是我需要像ByVal这样的东西,在Add方法中(我知道它不是我需要的ByVal,因为我已经尝试过了:)但我希望你明白我的意思.)

.net vb.net visual-studio-2008

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

为什么ConvertTo工作,但在某些情况下铸造失败?

我总是很好奇.

为什么这样做:

double Number = Convert.ToDouble(TextBox1.Text);
Run Code Online (Sandbox Code Playgroud)

但这不是:

double Number = (double)TextBox1.Text;
Run Code Online (Sandbox Code Playgroud)

c# casting

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

如何将字符串转换为listviewitem?

我尝试转换stringListViewItem:

ListViewItem str = (ListViewItem)Convert.ChangeType(az, typeof(ListViewItem));
Run Code Online (Sandbox Code Playgroud)

但它不起作用.这段代码有什么问题?

c#

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

Sharpsvn diff方法不起作用

我正在尝试使用sharpsvn实现diff方法.我的代码片段如下

private void Diff(string pSourcePath)
{
        Uri UriSCPath = new Uri(pstrSourcePath);
        SvnClient DPISVN_Clnt = new SvnClient();

         DPISVN_Clnt.Authentication.DefaultCredentials = new NetworkCredential("Biju","Biju");
        try
        {
            SvnRevisionRange objSvnRevisionRange=new SvnRevisionRange (17157,17161);
            Stream stream=null;
            MemoryStream objMemoryStream = new MemoryStream();
            bool b = DPISVN_Clnt.Diff(pstrSourcePath, objSvnRevisionRange, objMemoryStream);

           StreamReader strReader = new StreamReader(objMemoryStream);
            string str = strReader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是Diff方法总是在我的程序中返回true.我改变了我的revison范围而不是它返回true.

我的第二个问题是在diff方法中有一个输入参数名称Stream result.I认为它包含结果流信息.当我尝试使用streamreader读取结果流的内容时,它返回空字符串.但是我的修改范围不同,我的源文件中存在一些差异.

使用流是一样的方法吗?

.net sharpsvn

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

使用EntityDataSource与ASP:ListView时,用户'NT AUTHORITY/NETWORK SERVICE'登录失败

当我尝试运行包含EntityDataSource和Listview的页面时,我收到了用户'NT AUTHORITY/NETWORK SERVICE'的臭名昭着的登录失败.这是堆栈跟踪:

[SqlException(0x80131904):用户'NT AUTHORITY\NETWORK SERVICE'登录失败.] System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception,Boolean breakConnection)+4846887 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 194 System.Data.SqlClient.TdsParser.Run(runBehavior runBehavior,SqlCommand的cmdHandler,SqlDataReader的数据流,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)2392 System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(布尔enlistOK)35 System.Data.SqlClient的. SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo,String newPassword,Boolean ignoreSniOpenTimeout,Int64 timerExpire,SqlConnection owningObject)+144 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host,String newPassword,Boolean redirectedUserInstance,SqlConnection owningObject,SqlConnectionString connectionOptions,Int64 timerStart)+ 342 System.Data.SqlClient.SqlInternalConn ectionTds.OpenLoginEnlist(SqlConnection的owningObject,SqlConnectionString connectionOptions,字符串NEWPASSWORD,布尔redirectedUserInstance)221 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity身份,SqlConnectionString connectionOptions,对象providerInfo,字符串NEWPASSWORD,SqlConnection的owningObject,布尔redirectedUserInstance)189系统.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions选项,Object poolGroupProviderInfo,DbConnectionPool池,DbConnection owningConnection)+185 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection,DbConnectionPool池,DbConnectionOptions选项)+31 System.Data.ProviderBase. DbConnectionPool.CreateObject(DbConnection owningObject)+433 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)+66 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)+499 System.Data.Provid erBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)+65 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)+117 System.Data.SqlClient.SqlConnection.Open()+122 System.Data.EntityClient.EntityConnection. OpenStoreConnectionIf(Boolean openCondition,DbConnection storeConnectionToOpen,DbConnection originalConnection,String exceptionCode,String attemptsOperation,Boolean&closeStoreConnectionOnFailure)+47

[EntityException:底层提供程序在Open上失败.] System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition,DbConnection storeConnectionToOpen,DbConnection originalConnection,String exceptionCode,String attemptsOperation,Boolean&closeStoreConnectionOnFailure)+168 System.Data.EntityClient.EntityConnection.Open ()+96 System.Data.Objects.ObjectContext.EnsureConnection()+81 System.Data.Objects.ObjectQuery 1.GetResults(Nullable1 forMergeOption)+46 System.Data.Objects.ObjectQuery 1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +39 System.Linq.Enumerable.Single(IEnumerable …

sql-server entity entity-framework ado.net-entity-data-model

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

如果唯一改变的是构造函数,我还应该派生出来吗?

我有一个已经实现了所有内容的类,但它的初始化过程对于每个子类都是不同的.
有没有更好的成语来取代ctor?我应该使用更通用/更动态的东西吗?

c++ generics constructor

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

与非程序员沟通的提示

我是一名开发人员PHP/MySQL开发人员.我们数据库的内容是一个由非程序员组成的excel文件.他们是聪明人,但往往看不到excel文件中的小变化可以完全使我的PHP代码中的逻辑变得毫无意义.有没有人在这些类型的场景中有与非程序员沟通的技巧?

communication

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

当项目被添加到 DOM 或从 DOM 中删除时是否有 javascript 事件?

我正在尝试构建一个 Chrome 浏览器扩展程序,它应该可以增强 Twitter 网站在 Google Chrome 中的行为方式。我想标记加载新推文时向下移动的顶部推文,然后滚动到它。

我可以通过mousedown使用.live(). 之后,我必须等到推文加载完毕,然后才能向下滚动到上一条推文。我有一个setTimeout()现在的黑客,这对我有用,但我想要一个更好的解决方案。

可能的解决方案:

  • 以某种方式挂钩一个在元素加载到 div 时触发的事件
  • 当一个元素从 DOM 中移除时,钩住一个触发的事件

javascript twitter jquery

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

System.Text.Encoding.UTF8.GetBytes(s)同一台计算机上的字符串的不同值,不同的程序

我正在做一个

System.Text.Encoding.UTF8.GetBytes(s) 
Run Code Online (Sandbox Code Playgroud)

在使用.NET 2.0框架的两个不同程序(一个控制台,一个Web)中的字符串上,编码与两者不同.对于字符串"everything",我得到相同的结果,但对于字符串"OnI3UwUc",我得到两个不同的结果.

对于"OnI3UwUc",6f6e693375777563对于另一个程序中的"OnI3UwUc",我得到4f63493355775563.

在里面

我试着把它写成与我的一些经典ASP代码一样操作:

Dim crypt : Set crypt = CreateObject("Chilkat.Crypt2")      
crypt.UnlockComponent("TXTECHCrypt_6X6EnMdFNRCe") 
crypt.HashAlgorithm = "sha1"  
crypt.CryptAlgorithm = "aes" 
crypt.CipherMode = "ecb" 
crypt.EncodingMode = "hex" 
crypt.SetEncodedKey "100202330405560608790A8B0C9D0EAF","hex" 
Run Code Online (Sandbox Code Playgroud)

c# string encoding

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