TryGet() public method

Tries to get the guess at an offset.
public TryGet ( uint offset ) : ITagElementGuess
offset uint The offset to get the guess at.
return ITagElementGuess
コード例 #1
0
        private void ProcessLayout(TagLayoutGuess layout)
        {
            for (uint offset = 0; offset < layout.Size; offset += 4)
            {
                var guess = layout.TryGet(offset);
                if (guess != null)
                {
                    guess.Accept(offset, this);
                    offset += guess.Size - 4;
                }
                else
                {
                    var remaining = layout.Size - offset;
                    switch (remaining)
                    {
                    case 3:
                        _result.Add(MakeField(offset, BasicFieldType.Int16));
                        _result.Add(MakeField(offset, BasicFieldType.Int8));
                        break;

                    case 2:
                        _result.Add(MakeField(offset, BasicFieldType.Int16));
                        break;

                    case 1:
                        _result.Add(MakeField(offset, BasicFieldType.Int8));
                        break;

                    default:     // >= 4
                        _result.Add(MakeField(offset, BasicFieldType.Int32));
                        break;
                    }
                }
            }
        }
コード例 #2
0
 private void ProcessLayout(TagLayoutGuess layout)
 {
     for (uint offset = 0; offset < layout.Size; offset += 4)
     {
         var guess = layout.TryGet(offset);
         if (guess != null)
         {
             guess.Accept(offset, this);
             offset += guess.Size - 4;
         }
         else
         {
             var remaining = layout.Size - offset;
             switch (remaining)
             {
                 case 3:
                     _result.Add(MakeField(offset, BasicFieldType.Int16));
                     _result.Add(MakeField(offset, BasicFieldType.Int8));
                     break;
                 case 2:
                     _result.Add(MakeField(offset, BasicFieldType.Int16));
                     break;
                 case 1:
                     _result.Add(MakeField(offset, BasicFieldType.Int8));
                     break;
                 default: // >= 4
                     _result.Add(MakeField(offset, BasicFieldType.Int32));
                     break;
             }
         }
     }
 }