我是做Java的,最近研究C#,很多函数不知道干什么的,弱弱的问下C#有没有API,如果没有我如何像java一样查看API就能知道函数、方法的用途

解决方案 »

  1.   

    可以调用系统API函数
    [DllImport...]引用进来
      

  2.   

    C#可以使用Windows API.我帮你转移到C#版块。
      

  3.   

    C#的文档在 MSDN Library里面,或者可以访问 msdn.microsoft.com 查找。
      

  4.   

    API当然有,也有帮助文档,
    不过大部分都封装好了
      

  5.   

    嗯,你说的这个不叫API,叫做SDK文档...世界上没有比MSDN更牛B的产品文档了,想当年我投入微软阵营很大一部分原因就是因为受不了linux、java的shi一样的文档...
      

  6.   

    他说的不是Windows SDK文档,而是.NET 框架库文档(.NET Framework SDK,在Win7后归入Windows 平台SDK)。因为Java的基础类库叫JDK,或者Java API,而.NET程序员喜欢把Windows SDK和Win32 API叫做API。所以此API非彼API。
      

  7.   

    API : Application Program Interface
    看你如何理解了。既然是接口,就没人说一定需要是function/method。win32 api可以通过p/invoke方式访问,如果你说的是框架,那.net runtime class就算是api了。看msdn,了解.net的架构,功能划分。
      

  8.   

    好像是没有像JAVA的JDK的CHM,你要查的话,可以用vs里的“转到定义”,或者使用MSDN这个超级帮助文档了
      

  9.   

    msdn
    马上等你
    csdn
    床上等你
      

  10.   

    你们Java是天天看电脑的API实现的??那的确牛,好想你说的是MSDN那个帮助文档所说的SDK吧!!
      

  11.   

    http://msdn.microsoft.com/zh-cn/library/ms123401.aspx这就是传说中在msdn 没感觉哪里好用了 c#的方法注释都很差 基本上就一句话 受不了 jdk里面的类 基本上 注释是代码的好几倍 
      

  12.   

    这是c# 关于Hashtable类的注释  // 摘要:
        //     表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。
        [Serializable]
        [DebuggerTypeProxy(typeof(Hashtable.HashtableDebugView))]
        [DebuggerDisplay("Count = {Count}")]
        [ComVisible(true)]
        public class Hashtable : IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback, ICloneable
        {
    这是java关于Hashtable的注释
    java.util 
    类 Hashtable<K,V>
    java.lang.Object
      java.util.Dictionary<K,V>
          java.util.Hashtable<K,V>
    所有已实现的接口: 
    Serializable, Cloneable, Map<K,V> 
    直接已知子类: 
    Properties, UIDefaults --------------------------------------------------------------------------------public class Hashtable<K,V>extends Dictionary<K,V>implements Map<K,V>, Cloneable, Serializable此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶 的数量,初始容量 就是哈希表创建时的容量。注意,哈希表的状态为 open:在发生“哈希冲突”的情况下,单个桶会存储多个条目,这些条目必须按顺序搜索。加载因子 是对哈希表在其容量自动增加之前可以达到多满的一个尺度。初始容量和加载因子这两个参数只是对该实现的提示。关于何时以及是否调用 rehash 方法的具体细节则依赖于该实现。通常,默认加载因子(.75)在时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查找某个条目的时间(在大多数 Hashtable 操作中,包括 get 和 put 操作,都反映了这一点)。初始容量主要控制空间消耗与执行 rehash 操作所需要的时间损耗之间的平衡。如果初始容量大于 Hashtable 所包含的最大条目数除以加载因子,则永远 不会发生 rehash 操作。但是,将初始容量设置太高可能会浪费空间。如果很多条目要存储在一个 Hashtable 中,那么与根据需要执行自动 rehashing 操作来增大表的容量的做法相比,使用足够大的初始容量创建哈希表或许可以更有效地插入条目。下面这个示例创建了一个数字的哈希表。它将数字的名称用作键:    Hashtable<String, Integer> numbers
         = new Hashtable<String, Integer>();
       numbers.put("one", 1);
       numbers.put("two", 2);
       numbers.put("three", 3);要获取一个数字,可以使用以下代码:    Integer n = numbers.get("two");
         if (n != null) {
             System.out.println("two = " + n);
         }
       }由所有类的“collection 视图方法”返回的 collection 的 iterator 方法返回的迭代器都是快速失败 的:在创建 Iterator 之后,如果从结构上对 Hashtable 进行修改,除非通过 Iterator 自身的 remove 方法,否则在任何时间以任何方式对其进行修改,Iterator 都将抛出ConcurrentModificationException。因此,面对并发的修改,Iterator 很快就会完全失败,而不冒在将来某个不确定的时间发生任意不确定行为的风险。由 Hashtable 的键和元素方法返回的 Enumeration 不 是快速失败的。 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误做法:迭代器的快速失败行为应该仅用于检测程序错误。 从Java 2 平台 v1.2起,此类就被改进以实现 Map 接口,使它成为 Java Collections Framework 中的一个成员。不像新的 collection 实现,Hashtable 是同步的 从以下版本开始: 
    JDK1.0 
    另请参见:
    Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, 序列化表格你会喜欢哪一个?
      

  13.   

    MSDN  什么都有了 http://msdn.microsoft.com/zh-cn/
      

  14.   


    // 摘要:
        //     Represents a strongly typed list of objects that can be accessed by index.
        //     Provides methods to search, sort, and manipulate lists.
        //
        // 类型参数:
        //   T:
        //     The type of elements in the list.
        [Serializable]
        [DebuggerDisplay("Count = {Count}")]
        public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
        {
            // 摘要:
            //     Initializes a new instance of the System.Collections.Generic.List<T> class
            //     that is empty and has the default initial capacity.
            public List();
            //
            // 摘要:
            //     Initializes a new instance of the System.Collections.Generic.List<T> class
            //     that contains elements copied from the specified collection and has sufficient
            //     capacity to accommodate the number of elements copied.
            //
            // 参数:
            //   collection:
            //     The collection whose elements are copied to the new list.
            //
            // 异常:
            //   System.ArgumentNullException:
            //     collection is null.
            public List(IEnumerable<T> collection);我咋看到的都挺多的
      

  15.   

    “C#有没有API”,
    答案是肯定的,有!而且还是你java 能查到的哪些API,当然后续会有些心加入的。关键是如何使用!1、P/Invoke平台调用,就是通常所说的互操作
        以C++为例:
       原型:DWORD GetFileAttributes( LPCTSTR lpFileName ); //获取文件属性值
       C#声明:
       [DllImport(kerner32.dll)]
       public static extern uint GetFileAttributes(string lpFileName );2、直接使用NET内库中已有的API
        毕竟互操作比较麻烦,而且容易出错,涉及到函数声明、常量定义、错误处理、回调函数、数据封送、效率、性能。等很多环节,现在,NET内库中已有常用的直接可以使用的Win32 API函数。由于Win32 API函数规模实在过于庞大,微软采取折中,先把最常用的做了。
        所有,我们在使用Win32 API函数是,先到net内库中查找,以确定是否有对应的实现。
    例如:FileSystem.CopyFile (String, String, Boolean)        在MSDN网站上,有一篇名为:“Micrsoft Win32 to Microsfot .NET FrameWork API Map”的文档,此文档列出了net已经实现的、与Win32 API具有相同功能的方法,避免不必要互操作。
      

  16.   

    也许J2SE/J2EE/框架API看多了,我实在不习惯看楼上各位大哥说的那个msdn帮助,请问有更接近与API的帮助文档
      

  17.   

    在弱弱的问下各位,我记得好像vs 2005有子带的API查询的功能,不知道是真的不,如果有请问如何使用?
      

  18.   

    需要MSDN的.NET Framework类库(以4为例)
    http://msdn.microsoft.com/zh-cn/library/gg145045(v=vs.100).aspx