小编ET.*_*ET.的帖子

所有数组在C#中实现了哪些接口?

作为一名新的.NET 3.5程序员,我开始学习LINQ,我发现了一些非常基本的东西,我之前没有注意到:

本书声称每个数组实现IEnumerable<T>(显然,否则我们不能使用LINQ到数组上的对象......).当我看到这个时,我心里想,我从未真正想过这个,我问自己所有数组实现了什么 - 所以我检查了 System.Array使用对象浏览器(因为它是CLR中每个数组的基类),并且我很惊讶,它没有实现IEnumerable<T>.

所以我的问题是:定义在哪里?我的意思是,我怎么能准确地告诉每个阵列实现哪些接口?

.net c# arrays interface-implementation

67
推荐指数
3
解决办法
3万
查看次数

WPF中的验证 - 自定义验证规则或IDataErrorInfo

作为一个新的WPF程序员,我无法找到两种不同的方式来验证用户输入:

编写自定义验证规则以实现IDataErrorInfo的优缺点是什么,反之亦然?什么时候我比较喜欢一个?

更新:

虽然我已经得到了答案,但我找到了可能对其他人有帮助的相关文章.

validation wpf idataerrorinfo

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

使用Bitmap时android中的图像尺寸不正确

我有.png图像文件存储为我的Android应用程序中的资源.在我的代码中,我从该图像分配新的Bitmap实例如下:

Bitmap img = BitmapFactory.decodeResource(getResources(), R.drawable.imgName);
Run Code Online (Sandbox Code Playgroud)

但是当我使用getWight()和getHeight()方法从Bitmap对象读取图像尺寸时,

int width = img.getWidth();
int height = img.getHeight();
Run Code Online (Sandbox Code Playgroud)

我从原始图像得到了不同的结果......有人可以解释我缺少什么,我怎样才能检索图像大小?

(我的项目符合android 2.2 - API 8)

编辑:确定 - 了解如何获取真实尺寸:将类的inJustDecodeBounds属性设置BitmapFactory.Options为true,如下所示:

BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(getResources(), R.drawable.imgName, options);
    width = options.outWidth;
    height = options.outHeight;
Run Code Online (Sandbox Code Playgroud)

现在的问题是当我们发送Options参数时解码器返回null ,所以我需要像我之前那样再次解码(没有Options参数...)来检索Bitmap实例-bizarre,不是吗?

android

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

何时将调用有线服务的onServiceConnected?

我试图从这样的另一个服务绑定服务:

public class ServiceA extends Service {
    private ServiceB mDataService;
    private boolean mIsBound;

    @Override
    public void onCreate(){
        super.onCreate();
        doBindService();
        /* ... */
    }

    @Override
    public void onStart(final Intent intent, final int startId){
        /*...*/
    }

    private ServiceConnection mConnection = new ServiceConnection() {
        public void onServiceConnected(ComponentName className, IBinder service) {            
            mDataService = ((ServiceB.LocalBinder)service).getService();
        }
        public void onServiceDisconnected(ComponentName className) {             
            mDataService = null;
        }
    };

    void doBindService() {          
        bindService(new Intent(ServiceA.this, ServiceB.class), mConnection, Context.BIND_AUTO_CREATE);          
        mIsBound = true;
    }

    void doUnbindService() {
        if (mIsBound) { …
Run Code Online (Sandbox Code Playgroud)

service android

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

如何确定链表是否包含循环?

可能重复:
查找链接列表中是否存在没有两个指针的循环
如何确定链接列表是否只使用两个内存位置进行循环.
测试链表是否有循环的最佳算法

在准备面试时,我遇到了以下问题:

如何使用额外的空间复杂度O(1)来确定链接列表(任何类型)是否包含循环?您不能假设循环从第一个节点开始(当然,循环不必包含所有节点).

我找不到答案,虽然我觉得这很简单......

linked-list

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

简单的DataBinding

我正在尝试进行(非常)简单的数据绑定测试,但它不能像我预期的那样工作...说我有以下类:

// this class represents some kind of data producer
public class DataSourceClass
    {
        public string Data { get; set; }

        public DataSourceClass()
        { }
    }


//this form holds the TextBox control as the Data consumer
public partial class DatabindingTestForm : Form
    {
        public DataSourceClass ds { get; set; }
        public DatabindingTestForm()
        {
            InitializeComponent();
            ds = new DataSourceClass();
            textBox.DataBindings.Add("Text", ds, "Data");
        }

        private void checkBox_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox.Checked)
                ds.Data = "CHECKED";
            else
                ds.Data = "NOT CHECKED";
        } …
Run Code Online (Sandbox Code Playgroud)

c# data-binding winforms

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

List <T>如何实现Add(对象值)?

我相信这很愚蠢,我有点不好意思问这个问题,但我仍然找不到答案:

我正在看List<T>这个实现的课程IList.

public class List<T> : IList
Run Code Online (Sandbox Code Playgroud)

Ilist中包含的方法之一是

int Add(object value)
Run Code Online (Sandbox Code Playgroud)

我明白不List<T>应该暴露那种方法(类型安全...),它实际上没有.但它怎么可能呢?mustnt类实现整个接口?

c# interface explicit-interface c#-2.0

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

Android上未清除的StateListDrawable行为

当我尝试使用时,我有一个非常奇怪的现象StateListDrawable:

我有一个扩展的视图,ImageViewStateListDrawable在其构造函数中使用.我有2个代码片段,以提出我的问题.第一个:

public class MyView extends ImageView{  
Resources r = getResources();
Drawable filteredDrawable = r.getDrawable(R.drawable.smallsale);                    
filteredDrawable.setColorFilter(new LightingColorFilter(Color.RED, 1));                                     
setImageDrawable(filteredDrawable); 
}
Run Code Online (Sandbox Code Playgroud)

第二个:

public class MyView extends ImageView{
Resources r = getResources();
Drawable filteredDrawable = r.getDrawable(R.drawable.smallsale);

filteredDrawable.setColorFilter(new LightingColorFilter(Color.RED, 1));

StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed},  filteredDrawable);
states.addState(new int[] {android.R.attr.state_focused}, filteredDrawable);
states.addState(new int[] {}, r.getDrawable(R.drawable.smallsale));

//Notice I do not use 'states' at all...
setImageDrawable(filteredDrawable); 
Run Code Online (Sandbox Code Playgroud)

}

(我知道这段代码没有多大意义 - 我想简化问题以使问题更清晰).问题是,在第一次正确的时候一切正常 - 我在drawable上设置了一个彩色滤镜,并显示出来.但是在第二个片段中,StateListDrawable实例以某种方式影响过滤器,并显示原始 drawable,即使我从未将其连接到ImageView …

android android-drawable

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

ADO .NET,实体框架和LINQ to SQL - 我感到困惑

我需要在脑海中安排这些概念:

Entity Framework是"新的"ADO .NET吗?这两个术语有什么区别?LINQ to SQL如何与每个相关?它是实体框架的一部分吗?

c# ado.net entity-framework linq-to-sql

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

c#中的可升级读卡器锁

我有一个在多个线程之间共享的字典.每个线程根据给定的键从字典中读取特定值,但是 - 如果字典中不存在该键,则线程需要将其添加到字典中.
为了解决同步问题,我虽然使用了ReaderWriterLockSlim类,它基本上给了我读者 - 作者锁定同步(意思是读者可以并行运行,但一次只能运行一个作者......)但为读者添加了升级选项.使用升级选项,我可以测试给定的密钥是否已经在字典中,如果没有 - 升级锁并写入它,承诺每个密钥只添加一个.

我的问题是,我不能一次创建两个可升级的锁 - 这意味着这个解决方案是不好的...... :(

有人可以向我解释为什么微软选择以这种方式实施可升级锁(我一次不能拥有多个可升级的锁......),并且让我知道如何通过自己实现可升级的锁\给我的另一个想法是同步我的共享字典?

c# multithreading synchronization readerwriterlockslim

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