none
Помогите на с# RRS feed

  • Вопрос

  • Делал чекер, писал код и вот написал вот это string mails = (string)log_maillist.Items.Count[0];    и он выдаёт ошибку:

    Невозможно применить индексирование через [] к выражению типа "int" C:\Users\Администратор\Documents\Visual Studio 2013\Projects\Parser E-Mail\Parser E-Mail\Form1.cs 83 39 Parser E-Mail.  Что делать?  писал и так : 

    string mails = log_maillist.Items.Count[0]; , всё равно ошибка. Помогите, пожалуйста! ВОТ ВЕСЬ КОД  МОЖЕТ ПРИГОДИТСЯ :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.Collections;
    using System.Reflection;
    using System.Threading;
    namespace Parser_E_Mail
    {
        public partial class Form1 : Form
        {
            public Hashtable infoplugin = new Hashtable();
            public int CountRunningThread;

            public int CountRunningThread1
            {
                get { return CountRunningThread; }

                set
                {
                    label4.Text = "Потоков запущено: " + value;
                    CountRunningThread = value;
                }
            }
            
            public Form1()
            {
                InitializeComponent();
                SetupSeting();
               
            }
           private void SetupSeting()
            {
                if (!Directory.Exists("Plugins"))
                {
                    Directory.CreateDirectory("Plugins");
                }
               else
                {
                    SetupPlugins();
                }
            }
           private void SetupPlugins()
           {
            string[] plug = Directory.GetDirectories("Plugins");
            foreach(string s in plug)
            {
                if(File.Exists(s + "\\info.txt"))
                {
                    StreamReader streamreader = new StreamReader(s + "//info.txt");
                    string[] infolines = streamreader.ReadLine().Split(new char[] { ';' });
                    if(File.Exists(s + "\\" + infolines[1]))
                    {
                        infoplugin.Add(infolines[0], new InfoPulugins(infolines[0],Directory.GetCurrentDirectory() +"\\"+ s + "\\" + infolines[1], infolines[2]));
                        checkedListBox1.Items.Add(infolines[0]);
               }
              }
            }
            label2.Text = "Плагинов: " + checkedListBox1.Items.Count;
           }

           private void btn_start_Click(object sender, EventArgs e)
           {
               int coutp = 0;
               int.TryParse(textBox1.Text, out coutp);
               for (int i = 0; i < coutp; ++i)
               {
                   Thread th = new Thread(StartsPotok);
                   th.Start();
               }
           }
            public void StartsPotok()
           {
               while (log_maillist.Items.Count > 0)
               {

                   string mails = (string)log_maillist.Items.Count[0];
                   log_maillist.Items.Remove(mails);


                   for (int i = 0; i < checkedListBox1.CheckedItems.Count; ++i )
                   {
                       InfoPulugins infpl = infoplugin[checkedListBox1.Items[i].ToString()]  as InfoPulugins;
                       if (infpl != null)
                       {
                           ChekerMailEnegia.Interface inters = GETDLL(infpl.PatchPlug, infpl.TypePlug);
                           if (inters.isRegister(mails))
                           {

                           }
                       }
                   }
               }
           }
            private ChekerMailEnegia.Interface GETDLL(string patch, string type)
           {
               Assembly assembl = Assembly.LoadFile(patch);
               Type types = assembl.GetType(type);
               ChekerMailEnegia.Interface inters = Activator.CreateInstance(types) as ChekerMailEnegia.Interface;

               return inters;
           }

          private void btn_addmail_Click(object sender, EventArgs e)
          {
              if(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
              {
                  StreamReader streamread = new StreamReader(openFileDialog1.FileName);
                  while(!streamread.EndOfStream)
                  {
                      log_maillist.Items.Add(streamread.ReadLine());
                  }
              }
          }
        }
        public class InfoPulugins
        {
            public string Name;

            public string PatchPlug;

            public string TypePlug;

            public int Good = 0;
            public InfoPulugins(string name, string patchplug, string typesplug)
            {
                this.Name = name;
                this.PatchPlug = patchplug;
                this.TypePlug = typesplug;
            }
        }
    }

    Ну я ещё не совсем его написал


    12 января 2014 г. 20:31

Ответы

  • string mails = (string)log_maillist.Items.Count[0];
    Count - это целое число, количество Item-ов в коллекции.
    Что можно индексировать в целом числе?
    Если Вам нужен конкретный Item с конкретным индексом, тогда так -
    string mails = (string)log_maillist.Items[0];
    • Предложено в качестве ответа kosuke904 13 января 2014 г. 4:54
    • Помечено в качестве ответа Taras KovalenkoBanned 16 января 2014 г. 23:47
    12 января 2014 г. 21:30